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

Issue 611023 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 2
Type: Bug

Blocking:
issue 608652



Sign in to add a comment

Some web pages cause __gCrWeb.languageDetection.detectLanguage() to fail with javascript error

Project Member Reported by sdefresne@chromium.org, May 11 2016

Issue description

See comment #11 of https://bugs.chromium.org/p/chromium/issues/detail?id=608652.

The following error is raised by some pages when invoking javascript snippet:

Error Domain=WKErrorDomain Code=4 "Une anomalie avec JavaScript s’est produite" UserInfo={NSLocalizedDescription=Une anomalie avec JavaScript s’est produite}


 
Labels: M-50
Blocking: 608652

Comment 3 by pkl@chromium.org, May 11 2016

Owner: eugene...@chromium.org
Status: Assigned (was: Available)
Eugene: Please take a look to see why this javascript error occurs on this page (comment 11 of issue 608652). This is related to the "translate issues" reported by gCon.
Sylvain, what do you see in Xcode console? Error code 4 means exception and we log JS exceptions to console.
This is the full console when this happen:

2016-05-11 14:47:11.358 Chromium[631:299933] GoogleCast framework version 2.10.0.4070
[0511/144711:ERROR:dns_config_service_posix.cc(213)] DNS config watch failed to start.
2016-05-11 14:47:20.030 Chromium[631:299933] -canOpenURL: failed for URL: "googlegmail:" - error: "(null)"
2016-05-11 14:47:20.040 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps-v2:" - error: "(null)"
2016-05-11 14:47:20.041 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps:" - error: "(null)"
2016-05-11 14:47:20.043 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs-v2:" - error: "(null)"
2016-05-11 14:47:20.044 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:20.047 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets-v2:" - error: "(null)"
2016-05-11 14:47:20.047 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:20.050 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides-v2:" - error: "(null)"
2016-05-11 14:47:20.051 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:20.055 Chromium[631:299933] -canOpenURL: failed for URL: "googledrive-v1:" - error: "(null)"
2016-05-11 14:47:20.055 Chromium[631:299933] -canOpenURL: failed for URL: "googledrive:" - error: "(null)"
2016-05-11 14:47:20.059 Chromium[631:299933] -canOpenURL: failed for URL: "gplus-v3:" - error: "(null)"
2016-05-11 14:47:20.060 Chromium[631:299933] -canOpenURL: failed for URL: "gplus-v2:" - error: "(null)"
2016-05-11 14:47:20.061 Chromium[631:299933] -canOpenURL: failed for URL: "gplus:" - error: "(null)"
2016-05-11 14:47:20.072 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:20.074 Chromium[631:299933] -canOpenURL: failed for URL: "vnd.google.calendar:" - error: "(null)"
2016-05-11 14:47:20.077 Chromium[631:299933] -canOpenURL: failed for URL: "googleapp:" - error: "(null)"
[0511/144722:WARNING:server_connection_manager.cc(270)] ServerConnectionManager forcing SYNC_AUTH_ERROR
[0511/144722:WARNING:syncer_proto_util.cc(344)] Error posting from syncer: Response Code (bogus on error): -1 Content-Length (bogus on error): -1 Server Status: SYNC_AUTH_ERROR
[0511/144722:WARNING:unacked_invalidation_set.cc(95)] Unrecognized to ack for object {"name":"SESSION","source":1004}
2016-05-11 14:47:30.276 Chromium[631:299933] -canOpenURL: failed for URL: "googleapp://" - error: "(null)"
2016-05-11 14:47:30.279 Chromium[631:299933] -canOpenURL: failed for URL: "googlegmail:" - error: "(null)"
2016-05-11 14:47:30.280 Chromium[631:299933] -canOpenURL: failed for URL: "googlegmail-x-callback:" - error: "(null)"
2016-05-11 14:47:30.281 Chromium[631:299933] -canOpenURL: failed for URL: "googlegmail-x-callback:" - error: "(null)"
2016-05-11 14:47:30.283 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps:" - error: "(null)"
2016-05-11 14:47:30.284 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps:" - error: "(null)"
2016-05-11 14:47:30.285 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps-x-callback:" - error: "(null)"
2016-05-11 14:47:30.285 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps:" - error: "(null)"
2016-05-11 14:47:30.286 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps-x-callback:" - error: "(null)"
2016-05-11 14:47:30.287 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps:" - error: "(null)"
2016-05-11 14:47:30.288 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps:" - error: "(null)"
2016-05-11 14:47:30.288 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps-x-callback:" - error: "(null)"
2016-05-11 14:47:30.289 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps:" - error: "(null)"
2016-05-11 14:47:30.290 Chromium[631:299933] -canOpenURL: failed for URL: "comgooglemaps-x-callback:" - error: "(null)"
2016-05-11 14:47:30.291 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.292 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.293 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.293 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.294 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.295 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.296 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.296 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.297 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.298 Chromium[631:299933] -canOpenURL: failed for URL: "googledocs:" - error: "(null)"
2016-05-11 14:47:30.299 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.299 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.300 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.301 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.302 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.303 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.303 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.304 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.305 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.306 Chromium[631:299933] -canOpenURL: failed for URL: "googlesheets:" - error: "(null)"
2016-05-11 14:47:30.307 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.307 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.308 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.309 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.310 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.310 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.311 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.312 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.312 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.313 Chromium[631:299933] -canOpenURL: failed for URL: "googleslides:" - error: "(null)"
2016-05-11 14:47:30.314 Chromium[631:299933] -canOpenURL: failed for URL: "googledrive:" - error: "(null)"
2016-05-11 14:47:30.315 Chromium[631:299933] -canOpenURL: failed for URL: "googledrive:" - error: "(null)"
2016-05-11 14:47:30.315 Chromium[631:299933] -canOpenURL: failed for URL: "googledrive-x-callback:" - error: "(null)"
2016-05-11 14:47:30.316 Chromium[631:299933] -canOpenURL: failed for URL: "googledrive:" - error: "(null)"
2016-05-11 14:47:30.317 Chromium[631:299933] -canOpenURL: failed for URL: "googledrive-x-callback:" - error: "(null)"
2016-05-11 14:47:30.318 Chromium[631:299933] -canOpenURL: failed for URL: "googledrive:" - error: "(null)"
2016-05-11 14:47:30.319 Chromium[631:299933] -canOpenURL: failed for URL: "gplus:" - error: "(null)"
2016-05-11 14:47:30.319 Chromium[631:299933] -canOpenURL: failed for URL: "gplus:" - error: "(null)"
2016-05-11 14:47:30.320 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.321 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.322 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.323 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.323 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.324 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.325 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.326 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.326 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.327 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.328 Chromium[631:299933] -canOpenURL: failed for URL: "googlephotos:" - error: "(null)"
2016-05-11 14:47:30.329 Chromium[631:299933] -canOpenURL: failed for URL: "vnd.google.calendar:" - error: "(null)"
2016-05-11 14:47:30.330 Chromium[631:299933] -canOpenURL: failed for URL: "vnd.google.calendar:" - error: "(null)"
2016-05-11 14:47:30.330 Chromium[631:299933] -canOpenURL: failed for URL: "vnd.google.calendar:" - error: "(null)"
2016-05-11 14:47:30.331 Chromium[631:299933] -canOpenURL: failed for URL: "vnd.google.calendar:" - error: "(null)"
2016-05-11 14:47:53.839 Chromium[631:299933] result = , error = Error Domain=WKErrorDomain Code=4 "Une anomalie avec JavaScript s’est produite" UserInfo={NSLocalizedDescription=Une anomalie avec JavaScript s’est produite}
(lldb) 
I do not see any javascript error there.
Labels: -M-50 ReleaseBlock-Stable M-51
Status: Started (was: Assigned)
Thanks! I was able to reproduce the bug and I can see that exception is happening in our messaging system. 
Cc: pinkerton@chromium.org
Status: WontFix (was: Started)
http://www.arcigaynapoli.org overrides window.webkit Object to true and breaks our messaging system (that's why Chrome did not log JS exceptions).

There is really nothing we can do here (web// can not prevent pages from tampering with window object). If you have STR for any other website, I can take a look at those specific cases.
Filed a bug to investigate if we can log JS errors even if window.webkit is overridden:  crbug.com/611101 
Status: Started (was: WontFix)
On a second thought, we can try aliasing window.__crWeb.webkit to window.webkit....
Labels: Hotlist-WKWebViewRegression
Project Member

Comment 12 by bugdroid1@chromium.org, May 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3eccc98ae84d9f47151d329b13fe2527f3f649ae

commit 3eccc98ae84d9f47151d329b13fe2527f3f649ae
Author: eugenebut <eugenebut@chromium.org>
Date: Thu May 12 21:01:09 2016

[ios] Protect JS messaging system from overriding window.webkit object.

Any webpage can override window.webkit object (intentionally or by
accident). Since window.webkit is used for JS->Native messaging it should
be protected from overriding.

Before sending a message, delete |window.webkit| to restore the original
implementation.

BUG= 611023 

Review-Url: https://codereview.chromium.org/1973683002
Cr-Commit-Position: refs/heads/master@{#393351}

[modify] https://crrev.com/3eccc98ae84d9f47151d329b13fe2527f3f649ae/ios/web/web_state/js/resources/message.js
[modify] https://crrev.com/3eccc98ae84d9f47151d329b13fe2527f3f649ae/ios/web/web_state/web_state_impl_unittest.mm

Labels: Merge-Request-51
Status: Fixed (was: Started)

Comment 14 by tin...@google.com, May 14 2016

Labels: -Merge-Request-51 Merge-Review-51 Hotlist-Merge-Review
[Automated comment] Less than 2 weeks to go before AppStore submit on M51, manual review required.
Labels: -Hotlist-Merge-review -Merge-Review-51 Merge-Approved-51
Project Member

Comment 16 by bugdroid1@chromium.org, May 16 2016

Labels: -merge-approved-51 merge-merged-2704
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/246bd79db2dc30c5c6ebc4d4045fc1ef16503f49

commit 246bd79db2dc30c5c6ebc4d4045fc1ef16503f49
Author: eugenebut <eugenebut@chromium.org>
Date: Mon May 16 21:03:42 2016

[ios] Protect JS messaging system from overriding window.webkit object.

Any webpage can override window.webkit object (intentionally or by
accident). Since window.webkit is used for JS->Native messaging it should
be protected from overriding.

Before sending a message, delete |window.webkit| to restore the original
implementation.

BUG= 611023 

Review-Url: https://codereview.chromium.org/1973683002
Cr-Commit-Position: refs/heads/master@{#393351}
(cherry picked from commit 3eccc98ae84d9f47151d329b13fe2527f3f649ae)
NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/1981773003
Cr-Commit-Position: refs/branch-heads/2704@{#566}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[modify] https://crrev.com/246bd79db2dc30c5c6ebc4d4045fc1ef16503f49/ios/web/web_state/js/resources/message.js

Status: Verified (was: Fixed)
Translate info bar is displayed when navigating to the webpage http://www.arcigaynapoli.org. 
Verified on iPad2(9.2.1), iPhone 6+(9.3.2) in 51.0.2704.54 beta 
Are there any design docs that need updating from this change? Any security docs? Should we get the Security team to re-review this?
Good point, I will update the doc, once I get edit access.
https://docs.google.com/document/d/1oyqNVgSRIY5VzB1TNeL7LuzEVQ6JP1EMVr8n3Z3V12U/edit

I don't think we need a security review for this change, it is safe and trivial, but I can ask someone if you want.
Labels: -Hotlist-WKWebViewRegression Hotlist-WKWebView-Regression
Verified on iPad Pro iOS 9.2.1, iPhone 6+(9.3.2) in 52.0.2743.21 Beta

1.Translate info bar is displayed when navigating to the webpage mail.ru , http://www.arcigaynapoli.org, qq.com


Sign in to add a comment