push something investigate how TAB evades preventDefault() look up how to get frame scripts to share state/libraries lydell's window method
TESTING
isTrusted getModifierState initKeyEvent charCode keyCode altKey ctrlKey shiftKey metaKey location repeat isComposing key code DOM_KEY_LOCATION_STANDARD DOM_KEY_LOCATION_LEFT DOM_KEY_LOCATION_RIGHT DOM_KEY_LOCATION_NUMPAD DOM_VK_CANCEL DOM_VK_HELP DOM_VK_BACK_SPACE DOM_VK_TAB DOM_VK_CLEAR DOM_VK_RETURN DOM_VK_SHIFT DOM_VK_CONTROL DOM_VK_ALT DOM_VK_PAUSE DOM_VK_CAPS_LOCK DOM_VK_KANA DOM_VK_HANGUL DOM_VK_EISU DOM_VK_JUNJA DOM_VK_FINAL DOM_VK_HANJA DOM_VK_KANJI DOM_VK_ESCAPE DOM_VK_CONVERT DOM_VK_NONCONVERT DOM_VK_ACCEPT DOM_VK_MODECHANGE DOM_VK_SPACE DOM_VK_PAGE_UP DOM_VK_PAGE_DOWN DOM_VK_END DOM_VK_HOME DOM_VK_LEFT DOM_VK_UP DOM_VK_RIGHT DOM_VK_DOWN DOM_VK_SELECT DOM_VK_PRINT DOM_VK_EXECUTE DOM_VK_PRINTSCREEN DOM_VK_INSERT DOM_VK_DELETE DOM_VK_0 DOM_VK_1 DOM_VK_2 DOM_VK_3 DOM_VK_4 DOM_VK_5 DOM_VK_6 DOM_VK_7 DOM_VK_8 DOM_VK_9 DOM_VK_COLON DOM_VK_SEMICOLON DOM_VK_LESS_THAN DOM_VK_EQUALS DOM_VK_GREATER_THAN DOM_VK_QUESTION_MARK DOM_VK_AT DOM_VK_A DOM_VK_B DOM_VK_C DOM_VK_D DOM_VK_E DOM_VK_F DOM_VK_G DOM_VK_H DOM_VK_I DOM_VK_J DOM_VK_K DOM_VK_L DOM_VK_M DOM_VK_N DOM_VK_O DOM_VK_P DOM_VK_Q DOM_VK_R DOM_VK_S DOM_VK_T DOM_VK_U DOM_VK_V DOM_VK_W DOM_VK_X DOM_VK_Y DOM_VK_Z DOM_VK_WIN DOM_VK_CONTEXT_MENU DOM_VK_SLEEP DOM_VK_NUMPAD0 DOM_VK_NUMPAD1 DOM_VK_NUMPAD2 DOM_VK_NUMPAD3 DOM_VK_NUMPAD4 DOM_VK_NUMPAD5 DOM_VK_NUMPAD6 DOM_VK_NUMPAD7 DOM_VK_NUMPAD8 DOM_VK_NUMPAD9 DOM_VK_MULTIPLY DOM_VK_ADD DOM_VK_SEPARATOR DOM_VK_SUBTRACT DOM_VK_DECIMAL DOM_VK_DIVIDE DOM_VK_F1 DOM_VK_F2 DOM_VK_F3 DOM_VK_F4 DOM_VK_F5 DOM_VK_F6 DOM_VK_F7 DOM_VK_F8 DOM_VK_F9 DOM_VK_F10 DOM_VK_F11 DOM_VK_F12 DOM_VK_F13 DOM_VK_F14 DOM_VK_F15 DOM_VK_F16 DOM_VK_F17 DOM_VK_F18 DOM_VK_F19 DOM_VK_F20 DOM_VK_F21 DOM_VK_F22 DOM_VK_F23 DOM_VK_F24 DOM_VK_NUM_LOCK DOM_VK_SCROLL_LOCK DOM_VK_WIN_OEM_FJ_JISHO DOM_VK_WIN_OEM_FJ_MASSHOU DOM_VK_WIN_OEM_FJ_TOUROKU DOM_VK_WIN_OEM_FJ_LOYA DOM_VK_WIN_OEM_FJ_ROYA DOM_VK_CIRCUMFLEX DOM_VK_EXCLAMATION DOM_VK_DOUBLE_QUOTE DOM_VK_HASH DOM_VK_DOLLAR DOM_VK_PERCENT DOM_VK_AMPERSAND DOM_VK_UNDERSCORE DOM_VK_OPEN_PAREN DOM_VK_CLOSE_PAREN DOM_VK_ASTERISK DOM_VK_PLUS DOM_VK_PIPE DOM_VK_HYPHEN_MINUS DOM_VK_OPEN_CURLY_BRACKET DOM_VK_CLOSE_CURLY_BRACKET DOM_VK_TILDE DOM_VK_VOLUME_MUTE DOM_VK_VOLUME_DOWN DOM_VK_VOLUME_UP DOM_VK_COMMA DOM_VK_PERIOD DOM_VK_SLASH DOM_VK_BACK_QUOTE DOM_VK_OPEN_BRACKET DOM_VK_BACK_SLASH DOM_VK_CLOSE_BRACKET DOM_VK_QUOTE DOM_VK_META DOM_VK_ALTGR DOM_VK_WIN_ICO_HELP DOM_VK_WIN_ICO_00 DOM_VK_WIN_ICO_CLEAR DOM_VK_WIN_OEM_RESET DOM_VK_WIN_OEM_JUMP DOM_VK_WIN_OEM_PA1 DOM_VK_WIN_OEM_PA2 DOM_VK_WIN_OEM_PA3 DOM_VK_WIN_OEM_WSCTRL DOM_VK_WIN_OEM_CUSEL DOM_VK_WIN_OEM_ATTN DOM_VK_WIN_OEM_FINISH DOM_VK_WIN_OEM_COPY DOM_VK_WIN_OEM_AUTO DOM_VK_WIN_OEM_ENLW DOM_VK_WIN_OEM_BACKTAB DOM_VK_ATTN DOM_VK_CRSEL DOM_VK_EXSEL DOM_VK_EREOF DOM_VK_PLAY DOM_VK_ZOOM DOM_VK_PA1 DOM_VK_WIN_OEM_CLEAR initDict initUIEvent view detail layerX layerY pageX pageY which rangeParent rangeOffset SCROLL_PAGE_UP SCROLL_PAGE_DOWN stopPropagation stopImmediatePropagation preventDefault initEvent getPreventDefault type target currentTarget eventPhase bubbles cancelable defaultPrevented composed timeStamp cancelBubble originalTarget explicitOriginalTarget NONE CAPTURING_PHASE AT_TARGET BUBBLING_PHASE ALT_MASK CONTROL_MASK SHIFT_MASK META_MASK defaultPreventedByChrome defaultPreventedByContent composedTarget multipleActionsPrevented isSynthesized