Page MenuHomePhabricator

[TUX] [IE10] No translation displayed and all page loads indicate unsaved changes
Closed, ResolvedPublic

Description

Observed on IE10 on a local Windows 7 NL. Confirmed on crossbrowsertesting.com with IE10 on Windows 8.

The editor is totally broken.

Steps to reproduce:

  1. Go to URL

Observed:
I. First displayed message ("Translating:Statistics") is marked as translated.

  1. Open the editor by clicking on "Translating:Statistics"

Observed:
II. An empty editor is displayed.

Expected:
III. An editor with the current translation is displayed.

  1. Close the editor

Observed:
IV. Message is marked as unsaved.

Expected:
V. Unchanged translations are not marked as unsaved.

  1. Force reload the page.

Observed:
VI. A pop-up is displayed with the message "Are you sure you want to leave this page?"

Expected:
VII. No pop-up, as nothing was changed, and the page reloads.

  1. Click "leave this page" to reload it.
  2. Force reload the page again.

Observed:
VIII. A pop-up is displayed with the message "Are you sure you want to leave this page?"

Expected:
IX. No pop-up, as nothing was changed, and the page reloads.


Version: master
Severity: blocker
URL: https://translatewiki.net/w/i.php?title=Special:Translate&group=page-0-all&language=nl&filter=&action=translate&uselang=en&debug=true

Details

Reference
bz47019

Event Timeline

Related URL: https://gerrit.wikimedia.org/r/58217 (Gerrit Change I05f169f8883ac7f30f38cd5cb16f3eab2fe4100c)

The first two issues should be solved by
https://gerrit.wikimedia.org/r/#/c/58217/

The issue with the pop-up on closing and reloading probably has something to with the .on( 'input propertychange', function () etc. bindings on the textarea in ext.translate.editor.js. There are two of them for some reason and they are doing strange things with the mw.translate.dirty flag.

IE<9 does not support oninput. So we used propertychange, but that will get triggered not only in content change, but in some DOM changes too. That might be the cause for wrong dirty bits. IE 9+ support oninput but it is buggy- does not detect text removal etc. So we need to write a cross browser event for this. That should fix all issues(3 to 6). Working on it.

With gerrit 58217, expected behaviors III and V are displayed. Expected behaviors VII and IX are not observed (VI and XIII instead).

Additional information: Step 4 and 6 do display expected behavior in IE9.

Related URL: https://gerrit.wikimedia.org/r/58287 (Gerrit Change Ib5a7fecdf3cc42c7f5463bb03cae2326e1a3afbc)

Tested on IE10 and other browsers, working.