[MediaWiki-commits] [Gerrit] Add event logger to collect IME functionality info - change (mediawiki...VisualEditor)
Catrope has uploaded a new change for review. https://gerrit.wikimedia.org/r/95990 Change subject: Add event logger to collect IME functionality info .. Add event logger to collect IME functionality info This will be used to collect event traces from various IME/browser/OS combinations that can then be used to drive unit tests. Change-Id: Id604161b568cd412b44fe9979aff45d1fe7f054a --- A demos/ve/eventLogger.html 1 file changed, 211 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor refs/changes/90/95990/1 diff --git a/demos/ve/eventLogger.html b/demos/ve/eventLogger.html new file mode 100644 index 000..4ccfd58 --- /dev/null +++ b/demos/ve/eventLogger.html @@ -0,0 +1,211 @@ +!DOCTYPE html +html + head + meta charset=UTF-8 + titleKeyboard Event Logger/title + style + html { + margin: 0; + padding: 0; + height: 100%; + } + + body { + margin: 1em; + padding: 0; + height: 100%; + } + + #ve-demo-halo { + width: 100%; + min-height: 2em; + } + + #ve-demo-content { + border: 1px solid gray; + width: 100%; + min-height: 2em; + max-height: 15%; + overflow-y: auto; + } + + #ve-demo-log { + margin-top: 1em; + border: 1px solid gray; + width: 100%; + height: 80%; + white-space: pre; + font-family: monospace; + padding: 0; + overflow-y: auto; + } + /style + /head + body + form id=ve-demo-halo + IME identifier (name and version): + input type=text name=identifier autofocus + input type=submit value=Start Logging Keyboard Events + /form + div id=ve-demo-content contenteditable=true style=display: none;/div + textarea id=ve-demo-log/textarea + + script src=../../modules/jquery/jquery.js/script + script src=../../modules/jquery/jquery.client.js/script + script src=../../modules/oojs/oo.js/script + script src=../../modules/rangy/rangy-core-1.3.js/script + script src=../../modules/rangy/rangy-position-1.3.js/script + script src=../../modules/unicodejs/unicodejs.js/script + script src=../../modules/unicodejs/unicodejs.graphemebreak.js/script + script src=../../modules/unicodejs/unicodejs.wordbreak.js/script + script src=../../modules/ve/ve.js/script + script src=../../modules/ve/ve.EventSequencer.js/script + script + ( function () { + var haloElement, contentElement, logElement, startTime, timeoutId, + oldHtml = '', + oldStartOffset = 0, + oldEndOffset = 0, + comments, + log = []; + + function makeEventHandler( eventName ) { + return function ( e ) { + logEvent( 'sendEvent', eventName, e ); + }; + } + + function makeAfterLoopHandler () { + return function () { + logEvent( 'endLoop' ); + }; + } + + function eventToObject( e ) { + // TODO: flesh this out more + if ( !e || e.keyCode === undefined ) { + return {}; + } else { + return { 'keyCode': e.keyCode }; + } + } + + function
[MediaWiki-commits] [Gerrit] Add event logger to collect IME functionality info - change (mediawiki...VisualEditor)
jenkins-bot has submitted this change and it was merged. Change subject: Add event logger to collect IME functionality info .. Add event logger to collect IME functionality info This will be used to collect event traces from various IME/browser/OS combinations that can then be used to drive unit tests. Change-Id: Id604161b568cd412b44fe9979aff45d1fe7f054a --- A demos/ve/eventLogger.html 1 file changed, 212 insertions(+), 0 deletions(-) Approvals: Catrope: Looks good to me, approved jenkins-bot: Verified diff --git a/demos/ve/eventLogger.html b/demos/ve/eventLogger.html new file mode 100644 index 000..56f27a4 --- /dev/null +++ b/demos/ve/eventLogger.html @@ -0,0 +1,212 @@ +!DOCTYPE html +html + head + meta charset=UTF-8 + titleKeyboard Event Logger/title + style + html { + margin: 0; + padding: 0; + height: 100%; + } + + body { + margin: 1em; + padding: 0; + height: 100%; + } + + #ve-demo-halo { + width: 100%; + min-height: 2em; + } + + #ve-demo-content { + border: 1px solid gray; + width: 100%; + min-height: 2em; + max-height: 15%; + overflow-y: auto; + } + + #ve-demo-log { + margin-top: 1em; + border: 1px solid gray; + width: 100%; + height: 80%; + white-space: pre; + font-family: monospace; + padding: 0; + overflow-y: auto; + } + /style + /head + body + form id=ve-demo-halo + IME identifier (name and version): + input type=text name=identifier autofocus + input type=submit value=Start Logging Keyboard Events + /form + div id=ve-demo-content contenteditable=true style=display: none;/div + textarea id=ve-demo-log/textarea + + script src=../../modules/jquery/jquery.js/script + script src=../../modules/jquery/jquery.client.js/script + script src=../../modules/oojs/oo.js/script + script src=../../modules/rangy/rangy-core-1.3.js/script + script src=../../modules/rangy/rangy-position-1.3.js/script + script src=../../modules/unicodejs/unicodejs.js/script + script src=../../modules/unicodejs/unicodejs.graphemebreak.js/script + script src=../../modules/unicodejs/unicodejs.wordbreak.js/script + script src=../../modules/ve/ve.js/script + script src=../../modules/ve/ve.EventSequencer.js/script + script + ( function () { + var haloElement, contentElement, logElement, startTime, timeoutId, + oldHtml = '', + oldStartOffset = 0, + oldEndOffset = 0, + comments, + log = []; + + function makeEventHandler( eventName ) { + return function ( e ) { + logEvent( 'sendEvent', eventName, e ); + }; + } + + function makeAfterLoopHandler () { + return function () { + logEvent( 'endLoop' ); + }; + } + + function eventToObject( e ) { + // TODO: flesh this out more + if ( !e || e.keyCode === undefined ) { + return {}; + } else { + return { 'keyCode': e.keyCode }; + } + } + + function logEvent( methodName, eventName, e ) { +