From 602ac45102acd50297da5b2e60881199c8d07efa Mon Sep 17 00:00:00 2001 From: Doro Wu Date: Tue, 12 May 2015 19:04:00 +0800 Subject: [PATCH] Update noVNC --- noVNC/.gitignore | 1 + noVNC/.travis.yml | 2 + noVNC/LICENSE.txt | 2 +- noVNC/debian/changelog | 35 - noVNC/debian/compat | 1 - noVNC/debian/control | 13 - noVNC/debian/copyright | 37 - noVNC/debian/novnc.install | 30 - noVNC/debian/rules | 14 - noVNC/docs/packaging.txt | 23 - noVNC/docs/release.txt | 2 +- .../.@__thumb/defaultscreen_320x460.png | Bin 0 -> 10699 bytes .../.@__thumb/defaultscreen_700x700.png | Bin 0 -> 13610 bytes noVNC/images/.@__thumb/s100screen_320x460.png | Bin 0 -> 4271 bytes noVNC/images/.@__thumb/s100screen_700x700.png | Bin 0 -> 3277 bytes noVNC/images/.@__thumb/s800screen_320x460.png | Bin 0 -> 10699 bytes noVNC/images/.@__thumb/s800screen_700x700.png | Bin 0 -> 17519 bytes noVNC/images/pop_less.png | Bin 0 -> 3523 bytes noVNC/images/pop_less_hover.png | Bin 0 -> 4660 bytes noVNC/images/pop_more.png | Bin 0 -> 3546 bytes noVNC/images/pop_more_hover.png | Bin 0 -> 4673 bytes noVNC/images/topbackground.png | Bin 0 -> 2835 bytes noVNC/include/base.css | 23 +- noVNC/include/display.js | 243 +- .../include/font-awesome/css/font-awesome.css | 66 + .../include/font-awesome/font/FontAwesome.otf | Bin 0 -> 62856 bytes .../font-awesome/font/fontawesome-webfont.eot | Bin 0 -> 38205 bytes .../font-awesome/font/fontawesome-webfont.svg | 414 + .../font-awesome/font/fontawesome-webfont.ttf | Bin 0 -> 80652 bytes .../font/fontawesome-webfont.woff | Bin 0 -> 44432 bytes noVNC/include/keysym.js | 2 +- noVNC/include/multiKeyCode.js | 38 + noVNC/include/rfb.js | 205 +- noVNC/include/ui.js | 251 +- noVNC/include/util.js | 100 +- noVNC/include/websock.js | 4 + noVNC/index.html | 4 +- noVNC/karma.conf.js | 7 +- noVNC/media/css/bootstrap-responsive.css | 1090 ++ noVNC/media/css/bootstrap.css | 7241 ++++++++ noVNC/media/css/jquery-ui.css | 1177 ++ noVNC/media/css/jquery.alerts.css | 92 + noVNC/media/css/jquery.treeview.css | 84 + noVNC/media/css/radio-checkbox-chrome.css | 72 + noVNC/media/css/radio-checkbox.css | 95 + noVNC/media/docs/QNAP-Enable_VT-x_SOP.pdf | Bin 0 -> 562832 bytes noVNC/media/img/.@__thumb/defaultbtn.gif | Bin 0 -> 89792 bytes .../defaultglyphicons-halflings-green.png | Bin 0 -> 537 bytes .../defaultglyphicons-halflings-white.png | Bin 0 -> 531 bytes .../.@__thumb/defaultglyphicons-halflings.png | Bin 0 -> 4371 bytes noVNC/media/img/.@__thumb/s100btn.gif | Bin 0 -> 89792 bytes .../s100glyphicons-halflings-green.png | Bin 0 -> 377 bytes .../s100glyphicons-halflings-white.png | Bin 0 -> 373 bytes .../.@__thumb/s100glyphicons-halflings.png | Bin 0 -> 17626 bytes noVNC/media/img/.@__thumb/s800btn.gif | Bin 0 -> 89792 bytes .../s800glyphicons-halflings-green.png | Bin 0 -> 537 bytes .../s800glyphicons-halflings-white.png | Bin 0 -> 531 bytes .../.@__thumb/s800glyphicons-halflings.png | Bin 0 -> 4371 bytes noVNC/media/img/_bullet_arrow_down.png | Bin 0 -> 232 bytes noVNC/media/img/_bullet_arrow_up.png | Bin 0 -> 209 bytes noVNC/media/img/account/account.png | Bin 0 -> 3048 bytes noVNC/media/img/account/account_over.png | Bin 0 -> 3040 bytes noVNC/media/img/account/cancel.png | Bin 0 -> 2970 bytes noVNC/media/img/account/checker.png | Bin 0 -> 3379 bytes noVNC/media/img/account/permission.png | Bin 0 -> 2979 bytes noVNC/media/img/account/plus.png | Bin 0 -> 2948 bytes .../img/addSSLHint/FF/.@__thumb/defaulten.jpg | Bin 0 -> 51249 bytes .../img/addSSLHint/FF/.@__thumb/s100en.jpg | Bin 0 -> 5189 bytes .../img/addSSLHint/FF/.@__thumb/s800en.jpg | Bin 0 -> 86558 bytes noVNC/media/img/addSSLHint/FF/en.jpg | Bin 0 -> 102211 bytes noVNC/media/img/arrowbtns.png | Bin 0 -> 3505 bytes noVNC/media/img/bar/Thumbs.db | Bin 0 -> 5632 bytes noVNC/media/img/bar/bblue.png | Bin 0 -> 2833 bytes noVNC/media/img/bar/blue.png | Bin 0 -> 2832 bytes noVNC/media/img/bar/green.png | Bin 0 -> 2839 bytes noVNC/media/img/bar/orange.png | Bin 0 -> 2837 bytes noVNC/media/img/btn.gif | Bin 0 -> 3319 bytes noVNC/media/img/cent_snapshot.jpg | 1 + noVNC/media/img/clone.png | Bin 0 -> 1034 bytes noVNC/media/img/close.png | Bin 0 -> 2995 bytes noVNC/media/img/error.png | Bin 0 -> 3109 bytes noVNC/media/img/error/err_bg.jpg | Bin 0 -> 1277 bytes noVNC/media/img/error/forbidden.png | Bin 0 -> 7682 bytes noVNC/media/img/eye_h.png | Bin 0 -> 2987 bytes noVNC/media/img/eye_l.png | Bin 0 -> 2966 bytes noVNC/media/img/eye_m.png | Bin 0 -> 3027 bytes noVNC/media/img/eye_u.png | Bin 0 -> 3003 bytes noVNC/media/img/favicon.ico | Bin 0 -> 4215 bytes .../media/img/glyphicons-halflings-green.png | Bin 0 -> 4797 bytes .../media/img/glyphicons-halflings-white.png | Bin 0 -> 4352 bytes noVNC/media/img/glyphicons-halflings.png | Bin 0 -> 4352 bytes noVNC/media/img/green_light.gif | Bin 0 -> 1382 bytes noVNC/media/img/grey_light.gif | Bin 0 -> 1345 bytes noVNC/media/img/grid-split.gif | Bin 0 -> 817 bytes noVNC/media/img/icon-info.png | Bin 0 -> 4515 bytes noVNC/media/img/icon-question-b.png | Bin 0 -> 6581 bytes noVNC/media/img/icon_connect.png | Bin 0 -> 712 bytes noVNC/media/img/icon_disconnect.png | Bin 0 -> 685 bytes noVNC/media/img/icons.png | Bin 0 -> 4665 bytes noVNC/media/img/icons_green.png | Bin 0 -> 2868 bytes noVNC/media/img/icons_over.png | Bin 0 -> 4787 bytes noVNC/media/img/icons_yellow.png | Bin 0 -> 2865 bytes noVNC/media/img/line.png | Bin 0 -> 214 bytes noVNC/media/img/list_.png | Bin 0 -> 2849 bytes noVNC/media/img/list_hover.png | Bin 0 -> 2839 bytes noVNC/media/img/loading.gif | Bin 0 -> 3236 bytes .../img/login/.@__thumb/defaultmiddleBg.png | Bin 0 -> 61013 bytes .../img/login/.@__thumb/s100middleBg.png | Bin 0 -> 9529 bytes .../img/login/.@__thumb/s800middleBg.png | Bin 0 -> 176938 bytes noVNC/media/img/login/BgImg.png | Bin 0 -> 704 bytes noVNC/media/img/login/checkBox.png | Bin 0 -> 429 bytes noVNC/media/img/login/dot.png | Bin 0 -> 1152 bytes noVNC/media/img/login/goMore.png | Bin 0 -> 1173 bytes noVNC/media/img/login/loginBtn.png | Bin 0 -> 430 bytes noVNC/media/img/login/loginEnter.png | Bin 0 -> 691 bytes noVNC/media/img/login/loginEnterMobile.png | Bin 0 -> 768 bytes noVNC/media/img/login/logo.png | Bin 0 -> 1905 bytes noVNC/media/img/login/middleBg.png | Bin 0 -> 130510 bytes noVNC/media/img/login/title.png | Bin 0 -> 4042 bytes .../.@__thumb/defaultbitnami_0.jpg | Bin 0 -> 49939 bytes .../.@__thumb/defaultbitnami_1.jpg | Bin 0 -> 52694 bytes .../.@__thumb/defaultbitnami_2.jpg | Bin 0 -> 33169 bytes .../.@__thumb/defaultbitnami_3.jpg | Bin 0 -> 71436 bytes .../.@__thumb/defaultbitnami_4.jpg | Bin 0 -> 67495 bytes .../.@__thumb/defaultbitnami_5.jpg | Bin 0 -> 13851 bytes .../.@__thumb/defaultbitnami_6.jpg | Bin 0 -> 17068 bytes .../.@__thumb/defaultbitnami_7.jpg | Bin 0 -> 37529 bytes .../marketplace/.@__thumb/defaultvmware_0.jpg | Bin 0 -> 57999 bytes .../marketplace/.@__thumb/defaultvmware_1.jpg | Bin 0 -> 35552 bytes .../marketplace/.@__thumb/defaultvmware_2.jpg | Bin 0 -> 65527 bytes .../marketplace/.@__thumb/s100bitnami_0.jpg | Bin 0 -> 5631 bytes .../marketplace/.@__thumb/s100bitnami_1.jpg | Bin 0 -> 5501 bytes .../marketplace/.@__thumb/s100bitnami_2.jpg | Bin 0 -> 4414 bytes .../marketplace/.@__thumb/s100bitnami_3.jpg | Bin 0 -> 6027 bytes .../marketplace/.@__thumb/s100bitnami_4.jpg | Bin 0 -> 6336 bytes .../marketplace/.@__thumb/s100bitnami_5.jpg | Bin 0 -> 2166 bytes .../marketplace/.@__thumb/s100bitnami_6.jpg | Bin 0 -> 2754 bytes .../marketplace/.@__thumb/s100bitnami_7.jpg | Bin 0 -> 4093 bytes .../marketplace/.@__thumb/s100vmware_0.jpg | Bin 0 -> 6442 bytes .../marketplace/.@__thumb/s100vmware_1.jpg | Bin 0 -> 3806 bytes .../marketplace/.@__thumb/s100vmware_2.jpg | Bin 0 -> 7211 bytes .../marketplace/.@__thumb/s800bitnami_0.jpg | Bin 0 -> 109747 bytes .../marketplace/.@__thumb/s800bitnami_1.jpg | Bin 0 -> 102177 bytes .../marketplace/.@__thumb/s800bitnami_2.jpg | Bin 0 -> 86180 bytes .../marketplace/.@__thumb/s800bitnami_3.jpg | Bin 0 -> 139858 bytes .../marketplace/.@__thumb/s800bitnami_4.jpg | Bin 0 -> 67641 bytes .../marketplace/.@__thumb/s800bitnami_5.jpg | Bin 0 -> 36047 bytes .../marketplace/.@__thumb/s800bitnami_6.jpg | Bin 0 -> 17090 bytes .../marketplace/.@__thumb/s800bitnami_7.jpg | Bin 0 -> 89973 bytes .../marketplace/.@__thumb/s800vmware_0.jpg | Bin 0 -> 155930 bytes .../marketplace/.@__thumb/s800vmware_1.jpg | Bin 0 -> 114133 bytes .../marketplace/.@__thumb/s800vmware_2.jpg | Bin 0 -> 71053 bytes noVNC/media/img/marketplace/bitnami_0.jpg | Bin 0 -> 81019 bytes noVNC/media/img/marketplace/bitnami_1.jpg | Bin 0 -> 69161 bytes noVNC/media/img/marketplace/bitnami_2.jpg | Bin 0 -> 87689 bytes noVNC/media/img/marketplace/bitnami_3.jpg | Bin 0 -> 98121 bytes noVNC/media/img/marketplace/bitnami_4.jpg | Bin 0 -> 68497 bytes noVNC/media/img/marketplace/bitnami_5.jpg | Bin 0 -> 24574 bytes noVNC/media/img/marketplace/bitnami_6.jpg | Bin 0 -> 19638 bytes noVNC/media/img/marketplace/bitnami_7.jpg | Bin 0 -> 61233 bytes noVNC/media/img/marketplace/close.png | Bin 0 -> 3241 bytes noVNC/media/img/marketplace/goto.png | Bin 0 -> 3307 bytes noVNC/media/img/marketplace/page_circle.png | Bin 0 -> 3983 bytes noVNC/media/img/marketplace/vmware_0.jpg | Bin 0 -> 114370 bytes noVNC/media/img/marketplace/vmware_1.jpg | Bin 0 -> 96852 bytes noVNC/media/img/marketplace/vmware_2.jpg | Bin 0 -> 53621 bytes noVNC/media/img/minus.jpg | Bin 0 -> 7758 bytes noVNC/media/img/nas_default/item-over.gif | Bin 0 -> 850 bytes noVNC/media/img/nas_default/menu.gif | Bin 0 -> 834 bytes noVNC/media/img/ok.png | Bin 0 -> 3083 bytes noVNC/media/img/open.png | Bin 0 -> 3004 bytes noVNC/media/img/open2.png | Bin 0 -> 2954 bytes noVNC/media/img/page-first-disabled.gif | Bin 0 -> 925 bytes noVNC/media/img/page-first.gif | Bin 0 -> 925 bytes noVNC/media/img/page-last-disabled.gif | Bin 0 -> 923 bytes noVNC/media/img/page-last.gif | Bin 0 -> 923 bytes noVNC/media/img/page-next-disabled.gif | Bin 0 -> 875 bytes noVNC/media/img/page-next.gif | Bin 0 -> 875 bytes noVNC/media/img/page-prev-disabled.gif | Bin 0 -> 879 bytes noVNC/media/img/page-prev.gif | Bin 0 -> 879 bytes noVNC/media/img/page-refresh.gif | Bin 0 -> 977 bytes noVNC/media/img/plus.jpg | Bin 0 -> 7782 bytes noVNC/media/img/qnap-logo-b.png | Bin 0 -> 839 bytes noVNC/media/img/question.png | Bin 0 -> 2964 bytes noVNC/media/img/refresh.png | Bin 0 -> 602 bytes noVNC/media/img/refresh2.png | Bin 0 -> 3497 bytes noVNC/media/img/remove2.png | Bin 0 -> 2996 bytes .../img/slider/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 212 bytes .../slider/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 208 bytes .../slider/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 335 bytes .../slider/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 207 bytes .../slider/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 262 bytes .../slider/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 262 bytes .../slider/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 332 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 280 bytes noVNC/media/img/switch_off.png | Bin 0 -> 3501 bytes noVNC/media/img/switch_on.png | Bin 0 -> 3439 bytes noVNC/media/img/text-bg.png | Bin 0 -> 203 bytes noVNC/media/img/title_bg.png | Bin 0 -> 1167 bytes noVNC/media/img/tree_root.png | Bin 0 -> 3500 bytes .../.@__thumb/defaulttreeview-black-line.gif | Bin 0 -> 33396 bytes .../defaulttreeview-default-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/defaulttreeview-gray-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/defaulttreeview-red-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/s100treeview-black-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/s100treeview-default-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/s100treeview-gray-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/s100treeview-red-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/s800treeview-black-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/s800treeview-default-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/s800treeview-gray-line.gif | Bin 0 -> 33396 bytes .../.@__thumb/s800treeview-red-line.gif | Bin 0 -> 33396 bytes noVNC/media/img/treeview/Thumbs.db | Bin 0 -> 4608 bytes noVNC/media/img/treeview/file.gif | Bin 0 -> 913 bytes noVNC/media/img/treeview/folder-closed.gif | Bin 0 -> 900 bytes noVNC/media/img/treeview/folder-expanded.png | Bin 0 -> 3029 bytes noVNC/media/img/treeview/folder.gif | Bin 0 -> 904 bytes noVNC/media/img/treeview/folder.png | Bin 0 -> 3128 bytes noVNC/media/img/treeview/minus.gif | Bin 0 -> 837 bytes noVNC/media/img/treeview/nas.png | Bin 0 -> 3006 bytes noVNC/media/img/treeview/plus.gif | Bin 0 -> 841 bytes noVNC/media/img/treeview/tree_arrows.png | Bin 0 -> 3178 bytes .../img/treeview/treeview-black-line.gif | Bin 0 -> 1877 bytes noVNC/media/img/treeview/treeview-black.gif | Bin 0 -> 1216 bytes .../img/treeview/treeview-default-line.gif | Bin 0 -> 1993 bytes noVNC/media/img/treeview/treeview-default.gif | Bin 0 -> 1222 bytes .../img/treeview/treeview-famfamfam-line.gif | Bin 0 -> 807 bytes .../media/img/treeview/treeview-famfamfam.gif | Bin 0 -> 1280 bytes .../media/img/treeview/treeview-gray-line.gif | Bin 0 -> 1877 bytes noVNC/media/img/treeview/treeview-gray.gif | Bin 0 -> 1230 bytes .../media/img/treeview/treeview-red-line.gif | Bin 0 -> 1877 bytes noVNC/media/img/treeview/treeview-red.gif | Bin 0 -> 1230 bytes noVNC/media/img/ubuntu_snapshot.jpg | 1 + noVNC/media/img/vnc/auto_login.png | Bin 0 -> 3152 bytes noVNC/media/img/vnc/auto_logout.png | Bin 0 -> 2948 bytes noVNC/media/img/vnc/autofit.png | Bin 0 -> 1254 bytes noVNC/media/img/vnc/c_a_d.png | Bin 0 -> 2866 bytes noVNC/media/img/vnc/cancel.png | Bin 0 -> 2977 bytes noVNC/media/img/vnc/com.png | Bin 0 -> 2891 bytes noVNC/media/img/vnc/destroy.png | Bin 0 -> 2823 bytes noVNC/media/img/vnc/exit_full.png | Bin 0 -> 2878 bytes noVNC/media/img/vnc/full_screen.png | Bin 0 -> 2908 bytes noVNC/media/img/vnc/install.png | Bin 0 -> 3407 bytes noVNC/media/img/vnc/logout.png | Bin 0 -> 3275 bytes noVNC/media/img/vnc/reset.png | Bin 0 -> 3083 bytes noVNC/media/img/vnc/restore.png | Bin 0 -> 401 bytes noVNC/media/img/vnc/resume.png | Bin 0 -> 2963 bytes noVNC/media/img/vnc/shutdown.png | Bin 0 -> 3096 bytes noVNC/media/img/vnc/snapshot.png | Bin 0 -> 2910 bytes noVNC/media/img/vnc/suspend.png | Bin 0 -> 2824 bytes noVNC/media/img/wait.gif | Bin 0 -> 1100 bytes noVNC/media/img/wizard/Thumbs.db | Bin 0 -> 35840 bytes noVNC/media/img/wizard/circle.png | Bin 0 -> 2679 bytes noVNC/media/img/wizard/icon.png | Bin 0 -> 11907 bytes noVNC/media/img/wizard/n1.png | Bin 0 -> 330 bytes noVNC/media/img/wizard/n2.png | Bin 0 -> 390 bytes noVNC/media/img/wizard/window.png | Bin 0 -> 20947 bytes noVNC/media/java/tightvnc-jviewer-nossh.jar | Bin 0 -> 266436 bytes noVNC/media/java/vncviewer.jar | Bin 0 -> 344518 bytes noVNC/media/js/QFlot.js | 121 + noVNC/media/js/QFolderTree.js | 227 + noVNC/media/js/QSpingEdit.js | 197 + noVNC/media/js/QUtility.js | 1182 ++ noVNC/media/js/ZeroClipboard.swf | Bin 0 -> 1071 bytes noVNC/media/js/bootstrap-alert.js | 94 + noVNC/media/js/bootstrap-button.js | 100 + noVNC/media/js/bootstrap-carousel.js | 161 + noVNC/media/js/bootstrap-collapse.js | 138 + noVNC/media/js/bootstrap-dropdown.js | 92 + noVNC/media/js/bootstrap-file-input.js | 113 + noVNC/media/js/bootstrap-modal.js | 211 + noVNC/media/js/bootstrap-popover.js | 95 + noVNC/media/js/bootstrap-scrollspy.js | 125 + noVNC/media/js/bootstrap-tab.js | 130 + noVNC/media/js/bootstrap-tooltip.js | 270 + noVNC/media/js/bootstrap-transition.js | 60 + noVNC/media/js/bootstrap-typeahead.js | 271 + noVNC/media/js/bootstrap.js | 1726 ++ noVNC/media/js/bootstrap.min.js | 6 + noVNC/media/js/excanvas.min.js | 1 + noVNC/media/js/get_sid.js | 186 + noVNC/media/js/jquery-ui.js | 15009 ++++++++++++++++ noVNC/media/js/jquery.alerts.js | 281 + noVNC/media/js/jquery.flot.min.js | 6 + noVNC/media/js/jquery.fullscreen-min.js | 10 + noVNC/media/js/jquery.js | 9252 ++++++++++ noVNC/media/js/jquery.treeview.js | 251 + noVNC/media/js/jquery.zclip.js | 497 + noVNC/media/js/multiLanguage.js | 29 + noVNC/media/js/scroll_fixed.js | 16 + noVNC/media/js/templates/importvm.js | 48 + noVNC/media/js/templates/vm.js | 143 + noVNC/media/js/templates/wizard.js | 29 + noVNC/novnc.html | 1111 ++ noVNC/package.json | 26 +- noVNC/tests/input.html | 1 + noVNC/tests/test.display.js | 150 +- noVNC/tests/test.rfb.js | 192 +- noVNC/tests/viewport.html | 9 +- noVNC/utils/Makefile | 11 - noVNC/utils/README.md | 4 + noVNC/utils/launch.sh | 38 +- noVNC/utils/nova-novncproxy | 152 - noVNC/utils/rebind | 18 - noVNC/utils/rebind.c | 94 - noVNC/utils/web.py | 55 - noVNC/utils/websocket.py | 1030 -- noVNC/utils/websockify | 471 - noVNC/utils/websockify.py | 1 - noVNC/utils/wsproxy.py | 1 - noVNC/vnc.html | 20 +- noVNC/vnc_auto.html | 55 +- 312 files changed, 43548 insertions(+), 2338 deletions(-) delete mode 100644 noVNC/debian/changelog delete mode 100644 noVNC/debian/compat delete mode 100644 noVNC/debian/control delete mode 100644 noVNC/debian/copyright delete mode 100644 noVNC/debian/novnc.install delete mode 100755 noVNC/debian/rules delete mode 100644 noVNC/docs/packaging.txt create mode 100755 noVNC/images/.@__thumb/defaultscreen_320x460.png create mode 100755 noVNC/images/.@__thumb/defaultscreen_700x700.png create mode 100755 noVNC/images/.@__thumb/s100screen_320x460.png create mode 100755 noVNC/images/.@__thumb/s100screen_700x700.png create mode 100755 noVNC/images/.@__thumb/s800screen_320x460.png create mode 100755 noVNC/images/.@__thumb/s800screen_700x700.png create mode 100755 noVNC/images/pop_less.png create mode 100755 noVNC/images/pop_less_hover.png create mode 100755 noVNC/images/pop_more.png create mode 100755 noVNC/images/pop_more_hover.png create mode 100755 noVNC/images/topbackground.png create mode 100755 noVNC/include/font-awesome/css/font-awesome.css create mode 100755 noVNC/include/font-awesome/font/FontAwesome.otf create mode 100755 noVNC/include/font-awesome/font/fontawesome-webfont.eot create mode 100755 noVNC/include/font-awesome/font/fontawesome-webfont.svg create mode 100755 noVNC/include/font-awesome/font/fontawesome-webfont.ttf create mode 100755 noVNC/include/font-awesome/font/fontawesome-webfont.woff create mode 100755 noVNC/include/multiKeyCode.js create mode 100755 noVNC/media/css/bootstrap-responsive.css create mode 100755 noVNC/media/css/bootstrap.css create mode 100755 noVNC/media/css/jquery-ui.css create mode 100755 noVNC/media/css/jquery.alerts.css create mode 100755 noVNC/media/css/jquery.treeview.css create mode 100755 noVNC/media/css/radio-checkbox-chrome.css create mode 100755 noVNC/media/css/radio-checkbox.css create mode 100755 noVNC/media/docs/QNAP-Enable_VT-x_SOP.pdf create mode 100755 noVNC/media/img/.@__thumb/defaultbtn.gif create mode 100755 noVNC/media/img/.@__thumb/defaultglyphicons-halflings-green.png create mode 100755 noVNC/media/img/.@__thumb/defaultglyphicons-halflings-white.png create mode 100755 noVNC/media/img/.@__thumb/defaultglyphicons-halflings.png create mode 100755 noVNC/media/img/.@__thumb/s100btn.gif create mode 100755 noVNC/media/img/.@__thumb/s100glyphicons-halflings-green.png create mode 100755 noVNC/media/img/.@__thumb/s100glyphicons-halflings-white.png create mode 100755 noVNC/media/img/.@__thumb/s100glyphicons-halflings.png create mode 100755 noVNC/media/img/.@__thumb/s800btn.gif create mode 100755 noVNC/media/img/.@__thumb/s800glyphicons-halflings-green.png create mode 100755 noVNC/media/img/.@__thumb/s800glyphicons-halflings-white.png create mode 100755 noVNC/media/img/.@__thumb/s800glyphicons-halflings.png create mode 100755 noVNC/media/img/_bullet_arrow_down.png create mode 100755 noVNC/media/img/_bullet_arrow_up.png create mode 100755 noVNC/media/img/account/account.png create mode 100755 noVNC/media/img/account/account_over.png create mode 100755 noVNC/media/img/account/cancel.png create mode 100755 noVNC/media/img/account/checker.png create mode 100755 noVNC/media/img/account/permission.png create mode 100755 noVNC/media/img/account/plus.png create mode 100755 noVNC/media/img/addSSLHint/FF/.@__thumb/defaulten.jpg create mode 100755 noVNC/media/img/addSSLHint/FF/.@__thumb/s100en.jpg create mode 100755 noVNC/media/img/addSSLHint/FF/.@__thumb/s800en.jpg create mode 100755 noVNC/media/img/addSSLHint/FF/en.jpg create mode 100755 noVNC/media/img/arrowbtns.png create mode 100755 noVNC/media/img/bar/Thumbs.db create mode 100755 noVNC/media/img/bar/bblue.png create mode 100755 noVNC/media/img/bar/blue.png create mode 100755 noVNC/media/img/bar/green.png create mode 100755 noVNC/media/img/bar/orange.png create mode 100755 noVNC/media/img/btn.gif create mode 120000 noVNC/media/img/cent_snapshot.jpg create mode 100755 noVNC/media/img/clone.png create mode 100755 noVNC/media/img/close.png create mode 100755 noVNC/media/img/error.png create mode 100755 noVNC/media/img/error/err_bg.jpg create mode 100755 noVNC/media/img/error/forbidden.png create mode 100755 noVNC/media/img/eye_h.png create mode 100755 noVNC/media/img/eye_l.png create mode 100755 noVNC/media/img/eye_m.png create mode 100755 noVNC/media/img/eye_u.png create mode 100755 noVNC/media/img/favicon.ico create mode 100755 noVNC/media/img/glyphicons-halflings-green.png create mode 100755 noVNC/media/img/glyphicons-halflings-white.png create mode 100755 noVNC/media/img/glyphicons-halflings.png create mode 100755 noVNC/media/img/green_light.gif create mode 100755 noVNC/media/img/grey_light.gif create mode 100755 noVNC/media/img/grid-split.gif create mode 100755 noVNC/media/img/icon-info.png create mode 100755 noVNC/media/img/icon-question-b.png create mode 100755 noVNC/media/img/icon_connect.png create mode 100755 noVNC/media/img/icon_disconnect.png create mode 100755 noVNC/media/img/icons.png create mode 100755 noVNC/media/img/icons_green.png create mode 100755 noVNC/media/img/icons_over.png create mode 100755 noVNC/media/img/icons_yellow.png create mode 100755 noVNC/media/img/line.png create mode 100755 noVNC/media/img/list_.png create mode 100755 noVNC/media/img/list_hover.png create mode 100755 noVNC/media/img/loading.gif create mode 100755 noVNC/media/img/login/.@__thumb/defaultmiddleBg.png create mode 100755 noVNC/media/img/login/.@__thumb/s100middleBg.png create mode 100755 noVNC/media/img/login/.@__thumb/s800middleBg.png create mode 100755 noVNC/media/img/login/BgImg.png create mode 100755 noVNC/media/img/login/checkBox.png create mode 100755 noVNC/media/img/login/dot.png create mode 100755 noVNC/media/img/login/goMore.png create mode 100755 noVNC/media/img/login/loginBtn.png create mode 100755 noVNC/media/img/login/loginEnter.png create mode 100755 noVNC/media/img/login/loginEnterMobile.png create mode 100755 noVNC/media/img/login/logo.png create mode 100755 noVNC/media/img/login/middleBg.png create mode 100755 noVNC/media/img/login/title.png create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultbitnami_0.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultbitnami_1.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultbitnami_2.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultbitnami_3.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultbitnami_4.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultbitnami_5.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultbitnami_6.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultbitnami_7.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultvmware_0.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultvmware_1.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/defaultvmware_2.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100bitnami_0.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100bitnami_1.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100bitnami_2.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100bitnami_3.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100bitnami_4.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100bitnami_5.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100bitnami_6.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100bitnami_7.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100vmware_0.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100vmware_1.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s100vmware_2.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800bitnami_0.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800bitnami_1.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800bitnami_2.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800bitnami_3.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800bitnami_4.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800bitnami_5.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800bitnami_6.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800bitnami_7.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800vmware_0.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800vmware_1.jpg create mode 100755 noVNC/media/img/marketplace/.@__thumb/s800vmware_2.jpg create mode 100755 noVNC/media/img/marketplace/bitnami_0.jpg create mode 100755 noVNC/media/img/marketplace/bitnami_1.jpg create mode 100755 noVNC/media/img/marketplace/bitnami_2.jpg create mode 100755 noVNC/media/img/marketplace/bitnami_3.jpg create mode 100755 noVNC/media/img/marketplace/bitnami_4.jpg create mode 100755 noVNC/media/img/marketplace/bitnami_5.jpg create mode 100755 noVNC/media/img/marketplace/bitnami_6.jpg create mode 100755 noVNC/media/img/marketplace/bitnami_7.jpg create mode 100755 noVNC/media/img/marketplace/close.png create mode 100755 noVNC/media/img/marketplace/goto.png create mode 100755 noVNC/media/img/marketplace/page_circle.png create mode 100755 noVNC/media/img/marketplace/vmware_0.jpg create mode 100755 noVNC/media/img/marketplace/vmware_1.jpg create mode 100755 noVNC/media/img/marketplace/vmware_2.jpg create mode 100755 noVNC/media/img/minus.jpg create mode 100755 noVNC/media/img/nas_default/item-over.gif create mode 100755 noVNC/media/img/nas_default/menu.gif create mode 100755 noVNC/media/img/ok.png create mode 100755 noVNC/media/img/open.png create mode 100755 noVNC/media/img/open2.png create mode 100755 noVNC/media/img/page-first-disabled.gif create mode 100755 noVNC/media/img/page-first.gif create mode 100755 noVNC/media/img/page-last-disabled.gif create mode 100755 noVNC/media/img/page-last.gif create mode 100755 noVNC/media/img/page-next-disabled.gif create mode 100755 noVNC/media/img/page-next.gif create mode 100755 noVNC/media/img/page-prev-disabled.gif create mode 100755 noVNC/media/img/page-prev.gif create mode 100755 noVNC/media/img/page-refresh.gif create mode 100755 noVNC/media/img/plus.jpg create mode 100755 noVNC/media/img/qnap-logo-b.png create mode 100755 noVNC/media/img/question.png create mode 100755 noVNC/media/img/refresh.png create mode 100755 noVNC/media/img/refresh2.png create mode 100755 noVNC/media/img/remove2.png create mode 100755 noVNC/media/img/slider/ui-bg_flat_0_aaaaaa_40x100.png create mode 100755 noVNC/media/img/slider/ui-bg_flat_75_ffffff_40x100.png create mode 100755 noVNC/media/img/slider/ui-bg_glass_55_fbf9ee_1x400.png create mode 100755 noVNC/media/img/slider/ui-bg_glass_65_ffffff_1x400.png create mode 100755 noVNC/media/img/slider/ui-bg_glass_75_dadada_1x400.png create mode 100755 noVNC/media/img/slider/ui-bg_glass_75_e6e6e6_1x400.png create mode 100755 noVNC/media/img/slider/ui-bg_glass_95_fef1ec_1x400.png create mode 100755 noVNC/media/img/slider/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100755 noVNC/media/img/switch_off.png create mode 100755 noVNC/media/img/switch_on.png create mode 100755 noVNC/media/img/text-bg.png create mode 100755 noVNC/media/img/title_bg.png create mode 100755 noVNC/media/img/tree_root.png create mode 100755 noVNC/media/img/treeview/.@__thumb/defaulttreeview-black-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/defaulttreeview-default-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/defaulttreeview-gray-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/defaulttreeview-red-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/s100treeview-black-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/s100treeview-default-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/s100treeview-gray-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/s100treeview-red-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/s800treeview-black-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/s800treeview-default-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/s800treeview-gray-line.gif create mode 100755 noVNC/media/img/treeview/.@__thumb/s800treeview-red-line.gif create mode 100755 noVNC/media/img/treeview/Thumbs.db create mode 100755 noVNC/media/img/treeview/file.gif create mode 100755 noVNC/media/img/treeview/folder-closed.gif create mode 100755 noVNC/media/img/treeview/folder-expanded.png create mode 100755 noVNC/media/img/treeview/folder.gif create mode 100755 noVNC/media/img/treeview/folder.png create mode 100755 noVNC/media/img/treeview/minus.gif create mode 100755 noVNC/media/img/treeview/nas.png create mode 100755 noVNC/media/img/treeview/plus.gif create mode 100755 noVNC/media/img/treeview/tree_arrows.png create mode 100755 noVNC/media/img/treeview/treeview-black-line.gif create mode 100755 noVNC/media/img/treeview/treeview-black.gif create mode 100755 noVNC/media/img/treeview/treeview-default-line.gif create mode 100755 noVNC/media/img/treeview/treeview-default.gif create mode 100755 noVNC/media/img/treeview/treeview-famfamfam-line.gif create mode 100755 noVNC/media/img/treeview/treeview-famfamfam.gif create mode 100755 noVNC/media/img/treeview/treeview-gray-line.gif create mode 100755 noVNC/media/img/treeview/treeview-gray.gif create mode 100755 noVNC/media/img/treeview/treeview-red-line.gif create mode 100755 noVNC/media/img/treeview/treeview-red.gif create mode 120000 noVNC/media/img/ubuntu_snapshot.jpg create mode 100755 noVNC/media/img/vnc/auto_login.png create mode 100755 noVNC/media/img/vnc/auto_logout.png create mode 100755 noVNC/media/img/vnc/autofit.png create mode 100755 noVNC/media/img/vnc/c_a_d.png create mode 100755 noVNC/media/img/vnc/cancel.png create mode 100755 noVNC/media/img/vnc/com.png create mode 100755 noVNC/media/img/vnc/destroy.png create mode 100755 noVNC/media/img/vnc/exit_full.png create mode 100755 noVNC/media/img/vnc/full_screen.png create mode 100755 noVNC/media/img/vnc/install.png create mode 100755 noVNC/media/img/vnc/logout.png create mode 100755 noVNC/media/img/vnc/reset.png create mode 100755 noVNC/media/img/vnc/restore.png create mode 100755 noVNC/media/img/vnc/resume.png create mode 100755 noVNC/media/img/vnc/shutdown.png create mode 100755 noVNC/media/img/vnc/snapshot.png create mode 100755 noVNC/media/img/vnc/suspend.png create mode 100755 noVNC/media/img/wait.gif create mode 100755 noVNC/media/img/wizard/Thumbs.db create mode 100755 noVNC/media/img/wizard/circle.png create mode 100755 noVNC/media/img/wizard/icon.png create mode 100755 noVNC/media/img/wizard/n1.png create mode 100755 noVNC/media/img/wizard/n2.png create mode 100755 noVNC/media/img/wizard/window.png create mode 100755 noVNC/media/java/tightvnc-jviewer-nossh.jar create mode 100755 noVNC/media/java/vncviewer.jar create mode 100755 noVNC/media/js/QFlot.js create mode 100755 noVNC/media/js/QFolderTree.js create mode 100755 noVNC/media/js/QSpingEdit.js create mode 100755 noVNC/media/js/QUtility.js create mode 100755 noVNC/media/js/ZeroClipboard.swf create mode 100755 noVNC/media/js/bootstrap-alert.js create mode 100755 noVNC/media/js/bootstrap-button.js create mode 100755 noVNC/media/js/bootstrap-carousel.js create mode 100755 noVNC/media/js/bootstrap-collapse.js create mode 100755 noVNC/media/js/bootstrap-dropdown.js create mode 100755 noVNC/media/js/bootstrap-file-input.js create mode 100755 noVNC/media/js/bootstrap-modal.js create mode 100755 noVNC/media/js/bootstrap-popover.js create mode 100755 noVNC/media/js/bootstrap-scrollspy.js create mode 100755 noVNC/media/js/bootstrap-tab.js create mode 100755 noVNC/media/js/bootstrap-tooltip.js create mode 100755 noVNC/media/js/bootstrap-transition.js create mode 100755 noVNC/media/js/bootstrap-typeahead.js create mode 100755 noVNC/media/js/bootstrap.js create mode 100755 noVNC/media/js/bootstrap.min.js create mode 100755 noVNC/media/js/excanvas.min.js create mode 100755 noVNC/media/js/get_sid.js create mode 100755 noVNC/media/js/jquery-ui.js create mode 100755 noVNC/media/js/jquery.alerts.js create mode 100755 noVNC/media/js/jquery.flot.min.js create mode 100755 noVNC/media/js/jquery.fullscreen-min.js create mode 100755 noVNC/media/js/jquery.js create mode 100755 noVNC/media/js/jquery.treeview.js create mode 100755 noVNC/media/js/jquery.zclip.js create mode 100755 noVNC/media/js/multiLanguage.js create mode 100755 noVNC/media/js/scroll_fixed.js create mode 100755 noVNC/media/js/templates/importvm.js create mode 100755 noVNC/media/js/templates/vm.js create mode 100755 noVNC/media/js/templates/wizard.js create mode 100755 noVNC/novnc.html delete mode 100644 noVNC/utils/Makefile delete mode 100755 noVNC/utils/nova-novncproxy delete mode 100755 noVNC/utils/rebind delete mode 100644 noVNC/utils/rebind.c delete mode 100755 noVNC/utils/web.py delete mode 100644 noVNC/utils/websocket.py delete mode 100755 noVNC/utils/websockify delete mode 120000 noVNC/utils/websockify.py delete mode 120000 noVNC/utils/wsproxy.py diff --git a/noVNC/.gitignore b/noVNC/.gitignore index 7cf2a2a..a707ba7 100644 --- a/noVNC/.gitignore +++ b/noVNC/.gitignore @@ -2,4 +2,5 @@ *.o tests/data_*.js utils/rebind.so +utils/websockify node_modules diff --git a/noVNC/.travis.yml b/noVNC/.travis.yml index 371b974..8192252 100644 --- a/noVNC/.travis.yml +++ b/noVNC/.travis.yml @@ -14,3 +14,5 @@ env: - secure: QE5GqGd2hrpQsIgd8dlv3oRUUHqZayomzzQjNXOB81VQi241uz/ru+3GtBZLB5WLZCq/Gj89vbLnR0LN4ixlmPaWv3/WJQGyDGuRD/vMnccVl+rBUP/Hh2zdYwiISIGcrywNAE+KLus/lyt/ahVgzbaRaDSzrM1HaZFT/rndGck= - secure: g75sdctEwj0hoLW0Y08Tdv8s5scNzplB6a9EtaJ2vJD9S/bK+AsPqbWesGv1UlrFPCWdbV7Vg61vkmoUjcmb5xhqFIjcM9TlYJoKWeOTsOmnQoSIkIq6gMF1k02+LmKInbPgIzrp3m3jluS1qaOs/EzFpDnJp9hWBiAfXa12Jxk= before_script: npm install -g karma-cli +addons: + sauce_connect: true diff --git a/noVNC/LICENSE.txt b/noVNC/LICENSE.txt index 2d09408..e896efc 100644 --- a/noVNC/LICENSE.txt +++ b/noVNC/LICENSE.txt @@ -12,10 +12,10 @@ is not limited to): include/jsunzip.js include/keysym.js include/logo.js + include/playback.js include/rfb.js include/ui.js include/util.js - include/vnc.js include/websock.js include/webutil.js diff --git a/noVNC/debian/changelog b/noVNC/debian/changelog deleted file mode 100644 index 4d30742..0000000 --- a/noVNC/debian/changelog +++ /dev/null @@ -1,35 +0,0 @@ -novnc (0.4) maverick; urgency=low - - * Clarify permissive licenses of HTML, CSS, images. - * Use render queue and requestAnimationFrame - * UltraVNC repeater support - - -- Joel Martin Fri, 14 Sep 2012 05:00:00 -0600 - -novnc (0.3) maverick; urgency=low - - * add tight encoding support - * release pressed key when focus lost (fixes locked Alt key) - * Support Apple Remote Desktop - * Add nova/openstack proxy wrapper - * Better connection close handling/reporting - - -- Joel Martin Fri, 11 May 2012 03:00:00 -0600 - -novnc (0.2) maverick; urgency=low - - * Mobile device support with viewport clipping - * Much better styling that also works on mobile devices well - * Update websockify to support latest WebSocket protocol HyBi 13 - (i.e. support IETF 6455) - * Better support in websockify for python 2.4 through 3.2 - * Support VMWare ESX and Intel AMT KVM - * View only mode - - -- Joel Martin Tue, 05 Jul 2011 01:00:00 -0600 - -novnc (0.1) maverick; urgency=low - - * First upstream release - - -- Joel Martin Tue, 05 Jul 2011 01:00:00 -0600 diff --git a/noVNC/debian/compat b/noVNC/debian/compat deleted file mode 100644 index 7f8f011..0000000 --- a/noVNC/debian/compat +++ /dev/null @@ -1 +0,0 @@ -7 diff --git a/noVNC/debian/control b/noVNC/debian/control deleted file mode 100644 index f7b92d5..0000000 --- a/noVNC/debian/control +++ /dev/null @@ -1,13 +0,0 @@ -Source: novnc -Section: web -Priority: optional -Maintainer: Joel Martin -Build-Depends: debhelper (>= 7.0.0~) -Standards-Version: 3.8.3 -Homepage: https://github.com/kanaka/noVNC/ - -Package: novnc -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, python (>= 2.4) -Description: HTML5 VNC client - VNC client using HTML5 (WebSockets, Canvas) with encryption (wss://) support. diff --git a/noVNC/debian/copyright b/noVNC/debian/copyright deleted file mode 100644 index db00fa1..0000000 --- a/noVNC/debian/copyright +++ /dev/null @@ -1,37 +0,0 @@ -Upstream Project: https://github.com/kanaka/noVNC/ - ---------------------- Original LICENSE.txt --------------------------- - -noVNC is Copyright (C) 2012 Joel Martin - -Some portions of noVNC are copyright to their individual authors. -Please refer to the individual source files and/or to the noVNC commit -history: https://github.com/kanaka/noVNC/commits/master - -noVNC is licensed under the MPL 2.0 (Mozilla Public License) with the -following exceptions: - - *.html, *.css : 2-Clause BSD license - - include/Orbitron* : SIL Open Font License 1.1 - (Copyright 2009 Matt McInerney) - - images/ : Creative Commons Attribution-ShareAlike - http://creativecommons.org/licenses/by-sa/3.0/ - - include/base64.js : MPL 2.0 - - include/des.js : Various BSD style licenses - - include/jsunzip.js : zlib/libpng license - - include/web-socket-js/ : New BSD license (3-clause). Source code at - http://github.com/gimite/web-socket-js - - include/chrome-app/tcp-stream.js - : Apache 2.0 license - ----------------------------------------------------------------------- - -The MPL-2.0 license text may be found here: - http://www.mozilla.org/MPL/2.0/ diff --git a/noVNC/debian/novnc.install b/noVNC/debian/novnc.install deleted file mode 100644 index ac51e3c..0000000 --- a/noVNC/debian/novnc.install +++ /dev/null @@ -1,30 +0,0 @@ -vnc.html /usr/share/novnc -vnc_auto.html /usr/share/novnc -README.md /usr/share/doc/novnc -LICENSE.txt /usr/share/doc/novnc -utils/Makefile /usr/share/novnc/utils -utils/launch.sh /usr/share/novnc/utils -utils/websocket.py /usr/share/novnc/utils -utils/websockify /usr/share/novnc/utils -utils/rebind.c /usr/share/novnc/utils -utils/rebind.so /usr/share/novnc/utils -images /usr/share/novnc -images/favicon.ico /usr/share/novnc -include/base64.js /usr/share/novnc/include -include/des.js /usr/share/novnc/include -include/display.js /usr/share/novnc/include -include/keysymdef.js /usr/share/novnc/include -include/keyboard.js /usr/share/novnc/include -include/input.js /usr/share/novnc/include -include/logo.js /usr/share/novnc/include -include/base.css /usr/share/novnc/include -include/blue.css /usr/share/novnc/include -include/black.css /usr/share/novnc/include -include/playback.js /usr/share/novnc/include -include/rfb.js /usr/share/novnc/include -include/ui.js /usr/share/novnc/include -include/util.js /usr/share/novnc/include -include/websock.js /usr/share/novnc/include -include/webutil.js /usr/share/novnc/include -include/jsunzip.js /usr/share/novnc/include -include/web-socket-js/* /usr/share/novnc/include/web-socket-js diff --git a/noVNC/debian/rules b/noVNC/debian/rules deleted file mode 100755 index 25b0812..0000000 --- a/noVNC/debian/rules +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/make -f - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -clean: - make -C utils clean - dh clean - -build: - make -C utils rebind.so - -%: - dh ${@} diff --git a/noVNC/docs/packaging.txt b/noVNC/docs/packaging.txt deleted file mode 100644 index 9552454..0000000 --- a/noVNC/docs/packaging.txt +++ /dev/null @@ -1,23 +0,0 @@ -noVNC packaging steps for Debian/Ubuntu: - -- Update the noVNC version in docs/VERSION and add a new entry for the - version in debian/changelog - -- Rename the novnc source directory to match the form "novnc-VERSION". - -- In the novnc source directory, run the packaging command: - - debuild -I -uc -us - - - The -I option ignores the .git directory when generating the - source tarball. - - the -uc and -us may be omitted in order to create a signed - package. - - - Alternatively, use pbuilder instead of debuild in order to build - for other distributions and to guarantee a sanitized package. - -- Verify the package and then commit the changes to docs/VERSION and - debian/changelog. - -- Upload the new package file(s). diff --git a/noVNC/docs/release.txt b/noVNC/docs/release.txt index 596482c..1660b9b 100644 --- a/noVNC/docs/release.txt +++ b/noVNC/docs/release.txt @@ -1,4 +1,4 @@ -- Update and commit docs/VERSION and debian/changelog +- Update and commit docs/VERSION - Create version tag and tarball from tag WVER=0.3 git tag v${WVER} diff --git a/noVNC/images/.@__thumb/defaultscreen_320x460.png b/noVNC/images/.@__thumb/defaultscreen_320x460.png new file mode 100755 index 0000000000000000000000000000000000000000..b22e38e4339d4ac9fb438c3040bff9f5969bc7b4 GIT binary patch literal 10699 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 literal 0 HcmV?d00001 diff --git a/noVNC/images/.@__thumb/defaultscreen_700x700.png b/noVNC/images/.@__thumb/defaultscreen_700x700.png new file mode 100755 index 0000000000000000000000000000000000000000..cec5e4f3f2b15d769c15c38d94b20e915a87cf9e GIT binary patch literal 13610 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 h9L0Q;mMPc~`*+k5QnC$S)(8^i+NJk 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 ZhWH|QIz&%hDDAc?k(QdSY6a99`9Gcv4ATGr literal 0 HcmV?d00001 diff --git a/noVNC/images/.@__thumb/s100screen_700x700.png b/noVNC/images/.@__thumb/s100screen_700x700.png new file mode 100755 index 0000000000000000000000000000000000000000..e525593f6ec0352ab6ae61fecb40834c98765a40 GIT binary patch literal 3277 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 LNkvXXu0mjfF&sIR literal 0 HcmV?d00001 diff --git a/noVNC/images/.@__thumb/s800screen_320x460.png b/noVNC/images/.@__thumb/s800screen_320x460.png new file mode 100755 index 0000000000000000000000000000000000000000..b22e38e4339d4ac9fb438c3040bff9f5969bc7b4 GIT binary patch literal 10699 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 literal 0 HcmV?d00001 diff --git a/noVNC/images/.@__thumb/s800screen_700x700.png b/noVNC/images/.@__thumb/s800screen_700x700.png new file mode 100755 index 0000000000000000000000000000000000000000..d73af5b40ae8d7ca5c70bb4743f51b40b031e932 GIT binary patch literal 17519 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 UG#zc)E&u=k07*qoM6N<$f}^j&Qvd(} literal 0 HcmV?d00001 diff --git a/noVNC/images/pop_more_hover.png b/noVNC/images/pop_more_hover.png new file mode 100755 index 0000000000000000000000000000000000000000..626299e706ae83b5124c11d8a277c971ed563dff GIT binary patch literal 4673 zcmV-H629$;P)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z2X0A3K~#9!te9(T9Y+<%&%E|=Z{pbN%2ia$B2H64U{P?aMCMV1T7ha3)HZTkqKFg< z77vA%QjrgpDghF*A__`?ekcXiEtQanDw4Xi4yYuAI7rllHvNz~4si&mkoG!t>btu$ zduI5+&dvDdKI5!3+N<5W_x|R8{&UWmC8bj7S-84`wD>*K=I{Os0A2-v!%-BSTlRr4V2ruqntQBYzup@f8tU1&abs^3MMVHO z008@=C{h3bd~R-TVRCZvzl~rSV*~(zb6)vu&#k~BqOs>J%dWUyb({x)nZ0}W4s6@D zZ7XA}uT(1iD2gIQo5iFW)DB812q8!i1l0398ipZrM-T*52tg>N%bxRnpK#8hdcxJm zu3fuc8yg#Y5fN_&fE@q;v|UiEr001wA0!9@T5E)1NG*6ZvEz3+Dz4Ypn3R-5Q2nZ$X2ad#frruFBXfuqoaenb_m0e7K=q1h9UJlZ<)%j zAoY%^si{){u#vZtOWZ|eL3966J1C{Z%@Drt8?CibN>Qbhky2vrb!}CyUTF2yJ$drv z0ss_vGYeF!nunYCzE8t2WI_ny`#$wNk8#ck$#a`A#$;J$q?DMZsTM+zIF2!gvOwC+ z$Bpa&0Ki+#)OpyzhTivmDuf`neR}JV1LUQ4UEKJ8gA*6Hu6WJ-T3sCSP!i5L^?jdiy>rJ{N5|?O0D$|y`tWy;9{&Bru_Kc+ zT5HH{ppzs)&N*R>xg>~)1QBVHB-&N9p1QmpzdH7yxytO~#l?m0?yegE0K&i%pStxk zUkt-S@z{~)k87>9lu`>JXdK5DG;=eB)|wz9QA(NoKkBMWTd{zxP*zpO7;w%h=bSwA z%OC&z?EIVmxjZ>aKK6-E-gC$3*u6mz@Is+rGXoF9kQE9AZWpBxf(jvMqvFsuY?acL zoJt5GarvEO;)(BnZ}#;3EaK($vf-u;o9^E6zyo0za^LrPu~_6`7;+&5bzli&%!*Jm zU9Je$^)ICqIOl|OP7eO&@yGvu;=~j>{mI(3J$>8nd+3p_sAo0joC+am5CqKkeU?Xt zGR8;_U9nreyi2bZ)Sd|;gfT`r=j4^+zx%^qjvfAWnyQM#ot+(>_w4xkBmFmiu-Er} zCWN52udt(0$-QREI&GuP67Ci9YIIXObLLu;O|J=Rb`q1DlAIKv?bEQeG zwQ1*L^!%^(ytB9z+iQU@=tn<(+n26i`<`wW%KE=n)~Qx|#js9e zy(}*Z&IkcqtlC_#j?U}5ulB$AN+Fl+U-F}G-TV4JGIY!KAn-$bFG({vJ@=0jr(U0a z!xjugteo8jyIo=ejdl~NiJ zO`4`!DP@68z2>ED*ye20EV=m}YIn~pDKDz&v z<1ZYw_E1Xca=DCYn&Q&Z5~gXYrIeW8Ysms_d)E3Z%QCH$qMUOR$MKTAf8njg)lTzv=Nl+=JEodCasFX5Ek}R`9BMYjkN*>+)l|2uB zXV3jfs_?}FPd#^O@$E_>u%47s>Nt)op!r!#DUG|mY4SdyF>F3d!x$shQ%Wh#7^7L1 z=`>9V0KgA_@X!;!?^Dh>wPiEU6j~`|^6yp@jpJA+Nuu+G2Cb;tva;60QcBGjWBJzF z008FxrFqW9>NICTl~P72rKOan5oja-@>a5do5J$2Q2@}0NEl-#%QEe#N}N5IwwXgp zS%GaAbYNhh2ms}#%33Sf#zHA&@?9y_S{oq*%_nB+`P@R<#pK*;8hQYLk&%&p0Qf6! zCH%F35fMGlqll>On;5rkbZfpHwz#wt`tkAc-p9su|$Z?n`^fVI|;B#CynBX03< zib%E6#)()%&@EfGbnV=^a}xl(97WM=%N5KCmvQ?|+d%;U*bvv6U^Qej(0%*%^^T5? zZUTU_0Pr*b0PpYbhvDJjrf;v^5Ig={cD+#>S=C+Dgd7|k?Ag3|bJx(&(7H8i)^q{D zWd1Ta0RSK?cun8R>w0q)zqbGYGXQWTilSNf#{UKYclmU2gG+b{00000NkvXXu0mjf Dmku7D literal 0 HcmV?d00001 diff --git a/noVNC/images/topbackground.png b/noVNC/images/topbackground.png new file mode 100755 index 0000000000000000000000000000000000000000..c2b6d465db8a79b48d26c8d4050d4f4fb4298528 GIT binary patch literal 2835 zcmV+u3+(iXP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z06 this._fb_width) { width = this._fb_width; } - if (height > this._fb_height) { height = this._fb_height; } - - if (vp.w !== width || vp.h !== height) { - // Change width - if (width < vp.w && cr.x2 > vp.x + width - 1) { - cr.x2 = vp.x + width - 1; - } - vp.w = width; - - // Change height - if (height < vp.h && cr.y2 > vp.y + height - 1) { - cr.y2 = vp.y + height - 1; - } - vp.h = height; - - var saveImg = null; - if (vp.w > 0 && vp.h > 0 && canvas.width > 0 && canvas.height > 0) { - var img_width = canvas.width < vp.w ? canvas.width : vp.w; - var img_height = canvas.height < vp.h ? canvas.height : vp.h; - saveImg = this._drawCtx.getImageData(0, 0, img_width, img_height); - } - - canvas.width = vp.w; - canvas.height = vp.h; - - if (saveImg) { - this._drawCtx.putImageData(saveImg, 0, 0); - } } var vx2 = vp.x + vp.w - 1; @@ -190,6 +134,7 @@ var Display; vy2 += deltaY; // Update the clean rectangle + var cr = this._cleanRect; if (vp.x > cr.x1) { cr.x1 = vp.x; } @@ -227,6 +172,7 @@ var Display; // Copy the valid part of the viewport to the shifted location var saveStyle = this._drawCtx.fillStyle; + var canvas = this._target; this._drawCtx.fillStyle = "rgb(255,255,255)"; if (deltaX !== 0) { this._drawCtx.drawImage(canvas, 0, 0, vp.w, vp.h, -deltaX, 0, vp.w, vp.h); @@ -239,6 +185,65 @@ var Display; this._drawCtx.fillStyle = saveStyle; }, + viewportChangeSize: function(width, height) { + + if (typeof(width) === "undefined" || typeof(height) === "undefined") { + + Util.Debug("Setting viewport to full display region"); + width = this._fb_width; + height = this._fb_height; + } + + var vp = this._viewportLoc; + if (vp.w !== width || vp.h !== height) { + + if (this._viewport) { + if (this._maxWidth !== 0 && width > this._maxWidth) { + width = this._maxWidth; + } + if (this._maxHeight !== 0 && height > this._maxHeight) { + height = this._maxHeight; + } + } + + var cr = this._cleanRect; + + if (width < vp.w && cr.x2 > vp.x + width - 1) { + cr.x2 = vp.x + width - 1; + } + if (height < vp.h && cr.y2 > vp.y + height - 1) { + cr.y2 = vp.y + height - 1; + } + + vp.w = width; + vp.h = height; + + var canvas = this._target; + if (canvas.width !== width || canvas.height !== height) { + + // We have to save the canvas data since changing the size will clear it + var saveImg = null; + if (vp.w > 0 && vp.h > 0 && canvas.width > 0 && canvas.height > 0) { + var img_width = canvas.width < vp.w ? canvas.width : vp.w; + var img_height = canvas.height < vp.h ? canvas.height : vp.h; + saveImg = this._drawCtx.getImageData(0, 0, img_width, img_height); + } + + if (canvas.width !== width) { canvas.width = width; } + if (canvas.height !== height) { canvas.height = height; } + + if (this._viewport) { + canvas.style.height = height + 'px'; + canvas.style.width = width + 'px'; + } + + if (saveImg) { + this._drawCtx.putImageData(saveImg, 0, 0); + } + } + } + }, + // Return a map of clean and dirty areas of the viewport and reset the // tracking of clean and dirty areas // @@ -304,7 +309,7 @@ var Display; this._rescale(this._scale); - this.viewportChange(); + this.viewportChangeSize(); }, clear: function () { @@ -470,6 +475,24 @@ var Display; this._target.style.cursor = "default"; }, + disableLocalCursor: function () { + this._target.style.cursor = "none"; + }, + + clippingDisplay: function () { + var vp = this._viewportLoc; + + var fbClip = this._fb_width > vp.w || this._fb_height > vp.h; + var limitedVp = this._maxWidth !== 0 && this._maxHeight !== 0; + var clipping = false; + + if (limitedVp) { + clipping = vp.w > this._maxWidth || vp.h > this._maxHeight; + } + + return fbClip || (limitedVp && clipping); + }, + // Overridden getters/setters get_context: function () { return this._drawCtx; @@ -480,51 +503,73 @@ var Display; }, set_width: function (w) { - this.resize(w, this._fb_height); + this._fb_width = w; }, get_width: function () { return this._fb_width; }, set_height: function (h) { - this.resize(this._fb_width, h); + this._fb_height = h; }, get_height: function () { return this._fb_height; }, + autoscale: function (containerWidth, containerHeight, downscaleOnly) { + var targetAspectRatio = containerWidth / containerHeight; + var fbAspectRatio = this._fb_width / this._fb_height; + + var scaleRatio; + if (fbAspectRatio >= targetAspectRatio) { + scaleRatio = containerWidth / this._fb_width; + } else { + scaleRatio = containerHeight / this._fb_height; + } + + var targetW, targetH; + if (scaleRatio > 1.0 && downscaleOnly) { + targetW = this._fb_width; + targetH = this._fb_height; + scaleRatio = 1.0; + } else if (fbAspectRatio >= targetAspectRatio) { + targetW = containerWidth; + targetH = Math.round(containerWidth / fbAspectRatio); + } else { + targetW = Math.round(containerHeight * fbAspectRatio); + targetH = containerHeight; + } + + // NB(directxman12): If you set the width directly, or set the + // style width to a number, the canvas is cleared. + // However, if you set the style width to a string + // ('NNNpx'), the canvas is scaled without clearing. + this._target.style.width = targetW + 'px'; + this._target.style.height = targetH + 'px'; + + this._scale = scaleRatio; + + return scaleRatio; // so that the mouse, etc scale can be set + }, + // Private Methods _rescale: function (factor) { - var canvas = this._target; - var properties = ['transform', 'WebkitTransform', 'MozTransform']; - var transform_prop; - while ((transform_prop = properties.shift())) { - if (typeof canvas.style[transform_prop] !== 'undefined') { - break; - } - } - - if (transform_prop === null) { - Util.Debug("No scaling support"); - return; - } - - if (typeof(factor) === "undefined") { - factor = this._scale; - } else if (factor > 1.0) { - factor = 1.0; - } else if (factor < 0.1) { - factor = 0.1; - } - - if (this._scale === factor) { - return; - } - this._scale = factor; - var x = canvas.width - (canvas.width * factor); - var y = canvas.height - (canvas.height * factor); - canvas.style[transform_prop] = 'scale(' + this._scale + ') translate(-' + x + 'px, -' + y + 'px)'; + + var w; + var h; + + if (this._viewport && + this._maxWidth !== 0 && this._maxHeight !== 0) { + w = Math.min(this._fb_width, this._maxWidth); + h = Math.min(this._fb_height, this._maxHeight); + } else { + w = this._fb_width; + h = this._fb_height; + } + + this._target.style.width = Math.round(factor * w) + 'px'; + this._target.style.height = Math.round(factor * h) + 'px'; }, _setFillColor: function (color) { @@ -626,9 +671,11 @@ var Display; ['true_color', 'rw', 'bool'], // Use true-color pixel data ['colourMap', 'rw', 'arr'], // Colour map array (when not true-color) ['scale', 'rw', 'float'], // Display area scale factor 0.0 - 1.0 - ['viewport', 'rw', 'bool'], // Use a viewport set with viewportChange() + ['viewport', 'rw', 'bool'], // Use viewport clipping ['width', 'rw', 'int'], // Display area width ['height', 'rw', 'int'], // Display area height + ['maxWidth', 'rw', 'int'], // Viewport max width (0 if disabled) + ['maxHeight', 'rw', 'int'], // Viewport max height (0 if disabled) ['render_mode', 'ro', 'str'], // Canvas rendering mode (read-only) diff --git a/noVNC/include/font-awesome/css/font-awesome.css b/noVNC/include/font-awesome/css/font-awesome.css new file mode 100755 index 0000000..ab5a4c1 --- /dev/null +++ b/noVNC/include/font-awesome/css/font-awesome.css @@ -0,0 +1,66 @@ +/*! + * Font Awesome 3.2.1 + * the iconic font designed for Bootstrap + * ------------------------------------------------------------------------------ + * The full suite of pictographic icons, examples, and documentation can be + * found at http://fontawesome.io. Stay up to date on Twitter at + * http://twitter.com/fontawesome. + * + * License + * ------------------------------------------------------------------------------ + * - The Font Awesome font is licensed under SIL OFL 1.1 - + * http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License - + * http://opensource.org/licenses/mit-license.html + * - Font Awesome documentation licensed under CC BY 3.0 - + * http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fontawesome.io" + * + * Author - Dave Gandy + * ------------------------------------------------------------------------------ + * Email: dave@fontawesome.io + * Twitter: http://twitter.com/davegandy + * Work: Lead Product Designer @ Kyruus - http://kyruus.com + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../font/fontawesome-webfont.eot?v=3.2.1'); + src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg'); + font-weight: normal; + font-style: normal; +} +/* FONT AWESOME CORE + * -------------------------- */ +[class^="icon-"], +[class*=" icon-"] { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + text-decoration: inherit; + -webkit-font-smoothing: antialiased; + *margin-right: .3em; +} +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.icon-long-arrow-down:before { + content: "\f175"; +} +.icon-long-arrow-up:before { + content: "\f176"; +} +.icon-long-arrow-left:before { + content: "\f177"; +} +.icon-long-arrow-right:before { + content: "\f178"; +} diff --git a/noVNC/include/font-awesome/font/FontAwesome.otf b/noVNC/include/font-awesome/font/FontAwesome.otf new file mode 100755 index 0000000000000000000000000000000000000000..8b0f54e47e1d356dcf1496942a50e228e0f1ee14 GIT binary patch literal 62856 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