| Summary: | Some plugins broken under IE10 | ||
|---|---|---|---|
| Product: | [ECD] Orion | Reporter: | Mark Macdonald <mamacdon> |
| Component: | Client | Assignee: | Mark Macdonald <mamacdon> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | critical | ||
| Priority: | P3 | CC: | gheorghe |
| Version: | 6.0 | ||
| Target Milestone: | 7.0 | ||
| Hardware: | PC | ||
| OS: | Windows 7 | ||
| Whiteboard: | |||
The problematic character appears at offset 10587 within the stringified manifest:
> \s+[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9 -]*)?\\s*\\(","end":"\\)","captures":{"1
> ^
> U+FFFF is here
The metadata in question comes from the JS syntax grammar
http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/commit/?id=c4731bb The JS grammar had some incorrect escapes inside a string literal. The intent was to write a regex pattern that would match U+A0 and U+FFFF characters, but instead it injected raw A0 and FFFF characters into the string. IE has a bug that causes it to choke on those characters when saving to localStorage [1]. [1] http://stackoverflow.com/a/10505012/3394770 |
1. Using IE10, go to Settings > Plugins 2. Note that the Web Tools plugin and JS plugin are showing 0 services, indicating they failed for some reason. 3. Open IE dev tools, click "Start Debugging", enable "Break on all exceptions". 4. Click the "Reload All" button on the page You can see an an error silently caught when we try to persist those plugins' metadata: SCRIPT87: Caught exception occurred : Invalid argument. pluginregistry.js, line 1001 character 17 > persist, pluginregistry.js, line 1001 > _persist, pluginregistry.js, line 472 > _update, pluginregistry.js, line 766 > settleDeferred, Deferred.js, line 70 > ... The problem is with the stringified plugin manifest. It contains a character that IE refuses to store in localStorage.