User:Jdforrester (WMF)

Jump to: navigation, search
James Forrester
Product Manager, VisualEditor team, Wikimedia Foundation
James Forrester

About me

I've been a Wikipedia editor since 2002 on the English Wikipedia and a few other Wikimedia projects (see my personal account). In May 2012 I joined the Wikimedia Foundation as the "Product Manager" for the VisualEditor team.

My work

My job is to help make sure the VisualEditor team understands what the community wants and needs, is focussed on the things that matter, and is engaging with and understood by the community.
Disclaimer: Although I work for the Wikimedia Foundation, contributions under this account do not necessarily represent the actions or views of the Foundation unless expressly stated otherwise. For example, edits to articles or uploads of other media are done in my individual, personal capacity unless otherwise stated.

Contact me

  • E-mail:
  • IRC: "James_F" on freenode
  • Skype: jdforrester
  • GTalk IM:

Current projects[edit | edit source]

VisualEditor[edit | edit source]

The main change this week in a new design for all windows, with the main action buttons consistently in the top bar of each window, based on a new, more flexible technology back-end (OOUI). As part of this, we replaced almost the navigation icons with simple words, which we found in testing was much easier for users to understand. Now, the "safe" cancel/undo control will always be in the top left, and any progressive insert/apply control will be in the top right. Rarer controls will be at the bottom of the dialog or inspector.

These changes also mean that the desktop and mobile version of VisualEditor can now use the exact same code, with windows deciding based on your platform and browser size how to display themselves. As well as addressing some long-term issues and design problems, this fixed a number of outstanding issues (bugs 60501, 66552, and 65322) and the team whilst it was bedding in the change found a few more (bugs 68048, 68061, 68066, 68068, 68121, and 68180).

You can now open links easily inside the link editor, to check whether the external or internal link was the one you meant to choose (bug 54759). This is especially useful for users on touch devices or other systems where opening links in a new window is not as simple as other places. Finally, we have adjusted the behaviour of VisualEditor to more closely mimic OpenOffice and most other editors, so typing when selecting a node now doesn't do anything, except for delete or backspace to remove it (bug 67177).

Thanks to alert community members, we discovered and fixed a major backspacing problem caused by templates with multiple child elements – most visibly, the "lang-fr" and similar templates used widely on articles on the English Wikipedia (and others). This meant that pressing backspace would delete two or more characters, seemingly at random, and was sufficiently serious that we rushed out a fix to all wikis as soon as we were aware of the issue (bug 67985). Our apologies for the inconvenience, and our gratitude to the editors who highlighted the issue as soon as they noticed it. We also fixed an issue that completely broke the citation and template dialogs in wmf13's release last week, and immediately released it.

We fixed a number of bugs related to cursoring around nodes and slugs (blank lines where you can drop the cursor). Firstly, an issue with slugs at the end or beginning of a document would make your cursor get stuck in a loop, unable to escape (bug 67551). A browser bug in Firefox caused another issue meant that you would get pawn characters inserted and typing would happen backwards if your cursored off a node like a reference (bug 67432). We had a problem where selecting a node by cursoring would mean you couldn't move up or down with the cursor, and instead VisualEditor would throw an error (bug 67755).

We fixed an issue following-on from work last week, which was causing pages pulled from the User namespace as transclusions to be prefixed with an extra colon (bug 67386). We also corrected an issue with the language editor that would throw a (harmless) error when you were using it (bug 67609).

There were a couple of issues with changing media settings which either wouldn't apply some of the changes you made (bug 67687) or would not enable the "Apply changes" button (bug 67684). Editing blocks of content from extensions like SyntaxHighlight, Poem or Score now makes sure to display any HTML correctly, and prevent you from inserting faulty closing tags inside themselves (bug 57249).

We fixed a number of issues with the mobile interface for VisualEditor, ahead of its wider release, including restoring the Cite menu which had gone missing (bug 67701), showing link suggestions correctly in a few circumstances where it wasn't before (bug 66753) and stopping the cursor showing up from the document "through" the link editor's suggestions (bug 67388). The major re-write of how windows work has had big improvements for all windows on mobile, which was one of its primary objectives, and included improvements to the mobile context.

The performance of the toolbar floating over the top of content when the page is scrolled down was significantly improved. The code to resize items was converted to be static and use clone methods rather than create a handle for the image each time. The window manager now doesn't throw an error if you ask it to open a window it doesn't know about.

The stand-alone VisualEditor was improved with the demo being expanded to tests, and the stand-alone toolbar altered to have labels for each group, move the language tool into the styling group, adding a keyboard shortcuts help dialog tool to the previously-unused 'actions' part of the toolbar, and use a large '+' instead of a label for the insert menu.

Some of the related changes to OOjs UI included changing how delay works for OO.ui.Process, splitting out part of OO.ui.OptionWidget into OO.ui.DecoratedOptionWidget, and separating overall setup from setOutlineItem in OO.ui.PageLayout. Further, there were fixes for Internet Explorer support in hiding (rather than just setting to zero-width) unused GridLayout panels, mobile-friendly styling, some better accessibility improvements for forms, allowing arguments to be used for deferMsg, letting buttons open URLs with an href, stopping disabled tools from stealing the browser's focus, cleanups to and expansions of the demos and documentation, and several other changes.

In terms of breaking changes for VisualEditor, a very old hook in the MediaWiki extension, ext.visualEditor.editPageInit, was removed (it had been provided for backwards-compatibility for over two years). In the core VisualEditor, the afterRender method used by nodes to re-render themselves had the optional generatedContents argument removed; the only known user of this, in the Math extension's formula editor, was already adjusted to compensate.

The unit tests were expanded to better cover the image model, showing selections and making transactions around aliens, and the test/ directory was renamed to tests/ to be consistent with other Wikimedia repositories. You can monitor the live results of the automated browser tests (triggered every twelve hours) on the server. A complete list of individual code commits is available in the 1.24/wmf14 changelog, and all Bugzilla tickets closed in this period are on Bugzilla's list.

Parsoid[edit | edit source]

  • 2014-06-monthly:
    In June, the Parsoid team continued with ongoing bug fixes and bi-weekly deployments; the selective serializer, improving our parsing support for some table-handling edge case, nowiki handling, and parsing performance are some of the areas that saw ongoing work. We began work on supporting language converter markup.

We added CSS styling to the HTML to ensure that Parsoid HTML renders like PHP parser output. We continued to tweak the CSS based on rendering differences we found. We also started work on computing visual diffs based on taking screenshots of rendered output of Parsoid and PHP HTML. This initial proof-of-concept will serve as the basis of more larger scale automated testing and identification of rendering diffs.

The GSoC 2014 LintTrap project saw good progress and a demo LintBridge application was made available on wmflabs with the wikitext issues detected by LintTrap.

We also had our quarterly review this month and contributed to the annual engineering planning process.

ResourceLoader (maintenance-only)[edit | edit source]