Explorar o código

Add logo, favicon.

Thanks to Michael Sersen for creating images/Logo.svg.

- Add images directory with original SVG logo, favicon, and some
  derivative PNGs of the logo for different purpose.

- Note that license on images/* is CC BY-SA.

- Add utils/img2js.py to take an image and generate a base64 encoded
  data URI string.

- Add base64 encoded data URI screen logo to display in canvas when
  disconnected.
Joel Martin %!s(int64=14) %!d(string=hai) anos
pai
achega
159ad55d03
Modificáronse 12 ficheiros con 765 adicións e 3 borrados
  1. 4 0
      LICENSE.txt
  2. 21 2
      docs/TODO
  3. 1 0
      favicon.ico
  4. 687 0
      images/Logo.svg
  5. BIN=BIN
      images/favicon.ico
  6. BIN=BIN
      images/favicon.png
  7. BIN=BIN
      images/full_512x512.png
  8. BIN=BIN
      images/screen_640x435.png
  9. 0 0
      include/logo.js
  10. 11 1
      include/rfb.js
  11. 1 0
      include/vnc.js
  12. 40 0
      utils/img2js.py

+ 4 - 0
LICENSE.txt

@@ -8,3 +8,7 @@ docs/LICENSE.LGPL-3) with the following exceptions:
     include/web-socket-js/     : New BSD license. Source code at
                                  http://github.com/gimite/web-socket-js
 
+    images/                    : Creative Commons Attribution-ShareAlike
+                                 http://creativecommons.org/licenses/by-sa/3.0/
+                                 Uses of the work must be attributed
+                                 to the noVNC project.

+ 21 - 2
docs/TODO

@@ -1,5 +1,26 @@
 Short Term:
 
+- VNC performance and regression playback suite.
+    - WebSockets
+        - expand latency test
+        - add absolute timers (every 500 packets)
+        - try 1 ms delay
+        - stop at 4000 packets
+        - small and large packets test
+
+    - JavaScript
+        - just base64 decode
+        - everything except Canvas
+
+    - Full test
+        - Without WebSockets
+        - With replay from python tester
+        - add higher-resolution multi test
+
+    - websockify test with echo and playback functionality
+      - choosen by client test page on connect
+
+
 - Keyboard layout/internationalization support
     - convert keyCode into proper charCode
 
@@ -24,8 +45,6 @@ Short Term:
 
 Medium Term:
 
-- VNC performance and regression playback suite.
-
 - Viewport support
 
 - Touchscreen testing/support.

+ 1 - 0
favicon.ico

@@ -0,0 +1 @@
+images/favicon.ico

+ 687 - 0
images/Logo.svg

@@ -0,0 +1,687 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.47pre4 r22446"
+   version="1.0"
+   sodipodi:docname="noVNC_Logo_13.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/joelm/Downloads/noVNC_Logo12.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   style="display:inline">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient7584">
+      <stop
+         id="stop7586"
+         offset="0"
+         style="stop-color:#171717;stop-opacity:1;" />
+      <stop
+         id="stop7588"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5965">
+      <stop
+         style="stop-color:#030303;stop-opacity:1;"
+         offset="0"
+         id="stop5967" />
+      <stop
+         id="stop5973"
+         offset="0.5"
+         style="stop-color:#090909;stop-opacity:1;" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop5969" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5932">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.87450981;"
+         offset="0"
+         id="stop5934" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop5936" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5333">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.05;"
+         offset="0"
+         id="stop5335" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:0;"
+         offset="1"
+         id="stop5337" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4694">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.03529412;"
+         offset="0"
+         id="stop4696" />
+      <stop
+         style="stop-color:#4c4c4c;stop-opacity:0;"
+         offset="1"
+         id="stop4698" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6989">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6991" />
+      <stop
+         style="stop-color:#0f0f0f;stop-opacity:1;"
+         offset="1"
+         id="stop6993" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6790">
+      <stop
+         style="stop-color:#434343;stop-opacity:1;"
+         offset="0"
+         id="stop6792" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop6794" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6736">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6738" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop6740" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6720">
+      <stop
+         style="stop-color:#303030;stop-opacity:1;"
+         offset="0"
+         id="stop6722" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop6724" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6702">
+      <stop
+         id="stop4688"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:0;" />
+      <stop
+         id="stop6714"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6662">
+      <stop
+         style="stop-color:#010000;stop-opacity:1;"
+         offset="0"
+         id="stop6664" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="1"
+         id="stop6666" />
+    </linearGradient>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send"
+       style="overflow:visible">
+      <path
+         id="path4730"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path4721"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(0.4,0,0,0.4,4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path4715"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(0.8,0,0,0.8,10,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-24.105461 : 505.9325 : 1"
+       inkscape:vp_y="6.1230318e-14 : 1000 : 0"
+       inkscape:vp_z="719.98902 : 505.9325 : 1"
+       inkscape:persp3d-origin="347.94178 : 330.5388 : 1"
+       id="perspective10" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6720"
+       id="linearGradient6742"
+       x1="341.66687"
+       y1="-253.40732"
+       x2="470.19839"
+       y2="-253.40732"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.874106,0,0,1.0453135,43.679874,11.482781)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6790"
+       id="linearGradient6796"
+       x1="-32.526917"
+       y1="294.91821"
+       x2="653.36664"
+       y2="294.91821"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7584"
+       id="linearGradient6987"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6520109,0,0,1.5543006,133.44336,136.96388)"
+       x1="341.66687"
+       y1="-253.40732"
+       x2="470.19839"
+       y2="-253.40732" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6702"
+       id="linearGradient4686"
+       gradientUnits="userSpaceOnUse"
+       x1="159.54247"
+       y1="443.13766"
+       x2="430.90103"
+       y2="443.13766" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4694"
+       id="linearGradient4700"
+       x1="229.03033"
+       y1="461.81128"
+       x2="393.28391"
+       y2="461.81128"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4694"
+       id="linearGradient4966"
+       gradientUnits="userSpaceOnUse"
+       x1="229.03033"
+       y1="461.81128"
+       x2="393.28391"
+       y2="461.81128"
+       spreadMethod="reflect" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5333"
+       id="linearGradient5339"
+       x1="271.28635"
+       y1="294.12686"
+       x2="490.23206"
+       y2="294.12686"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5932"
+       id="linearGradient5938"
+       x1="-245.06445"
+       y1="7.705513"
+       x2="-62.328537"
+       y2="7.705513"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5245666,0,0,2.6282551,644.92825,162.55033)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5965"
+       id="linearGradient5971"
+       x1="159.54247"
+       y1="443.13766"
+       x2="430.90103"
+       y2="443.13766"
+       gradientUnits="userSpaceOnUse"
+       spreadMethod="pad" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6720"
+       id="radialGradient7582"
+       cx="295.22174"
+       cy="443.13766"
+       fx="295.22174"
+       fy="443.13766"
+       r="135.67928"
+       gradientTransform="matrix(1,0,0,0.1356784,0,383.01346)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6720"
+       id="radialGradient7611"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.1356784,0,383.01346)"
+       cx="295.22174"
+       cy="443.13766"
+       fx="295.22174"
+       fy="443.13766"
+       r="135.67928" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4694"
+       id="linearGradient7613"
+       gradientUnits="userSpaceOnUse"
+       spreadMethod="reflect"
+       x1="229.03033"
+       y1="461.81128"
+       x2="393.28391"
+       y2="461.81128" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5333"
+       id="linearGradient2913"
+       gradientUnits="userSpaceOnUse"
+       x1="271.28635"
+       y1="294.12686"
+       x2="490.23206"
+       y2="294.12686"
+       gradientTransform="matrix(1.0217389,0,0,1.0105488,-8.1719712,-6.8195787)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5932"
+       id="linearGradient2916"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.5891218,0,0,2.7050059,653.14704,159.9845)"
+       x1="-245.06445"
+       y1="7.705513"
+       x2="-62.328537"
+       y2="7.705513" />
+    <inkscape:perspective
+       id="perspective2920"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     gridtolerance="10000"
+     guidetolerance="10"
+     objecttolerance="10"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="198.11269"
+     inkscape:cy="276.37194"
+     inkscape:document-units="px"
+     inkscape:current-layer="svg2"
+     showgrid="false"
+     inkscape:window-width="1680"
+     inkscape:window-height="1026"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     showborder="false"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Screen"
+     style="display:inline">
+    <rect
+       style="fill:#303030;fill-opacity:1;stroke:none;display:inline"
+       id="rect6684"
+       width="473.59906"
+       height="321.92017"
+       x="18.594318"
+       y="19.852146"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
+       inkscape:export-xdpi="121.61401"
+       inkscape:export-ydpi="121.61401" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer15"
+     inkscape:label="Favicon_Box"
+     style="display:none">
+    <rect
+       style="opacity:0;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
+       id="rect3899"
+       width="342.5874"
+       height="342.62888"
+       x="86.710419"
+       y="14.318709"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
+       inkscape:export-xdpi="4.1999998"
+       inkscape:export-ydpi="4.1999998" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
+       id="rect3899-5"
+       width="342.5874"
+       height="342.62888"
+       x="86.710419"
+       y="14.31871"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
+       inkscape:export-xdpi="4.1999998"
+       inkscape:export-ydpi="4.1999998" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="Base"
+     style="display:inline">
+    <path
+       sodipodi:type="arc"
+       style="fill:url(#linearGradient5971);fill-opacity:1;fill-rule:nonzero;stroke:none"
+       id="path6944"
+       sodipodi:cx="295.22174"
+       sodipodi:cy="443.13766"
+       sodipodi:rx="135.67928"
+       sodipodi:ry="18.408747"
+       d="m 430.90102,443.13766 a 135.67928,18.408747 0 1 1 -271.35855,0 135.67928,18.408747 0 1 1 271.35855,0 z"
+       transform="matrix(0.01302703,-0.3700754,8.066322,-0.0237182,-3322.837,581.39212)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:url(#linearGradient4686);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
+       id="path4684"
+       sodipodi:cx="295.22174"
+       sodipodi:cy="443.13766"
+       sodipodi:rx="135.67928"
+       sodipodi:ry="18.408747"
+       d="m 430.90102,443.13766 a 135.67928,18.408747 0 1 1 -271.35855,0 135.67928,18.408747 0 1 1 271.35855,0 z"
+       transform="matrix(0.01219366,-0.2777519,7.5503003,-0.01780117,-2984.4223,654.88677)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer14"
+     inkscape:label="BaseHighlight"
+     style="display:inline">
+    <path
+       style="fill:none;stroke:#0f0626;stroke-width:3.4000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.9254902;stroke-dasharray:none;marker-mid:none"
+       d="m 113.22547,451.27721 c -6.48144,25.47482 27.77284,36.00307 33.46034,37.48107 75.48368,19.61581 142.61203,18.18957 201.82073,2.0728 19.20235,-5.22693 38.29352,-12.81118 45.54545,-22.87742 8.91645,-12.37672 -0.92272,-23.26137 -0.92272,-23.26137"
+       id="path5997"
+       sodipodi:nodetypes="csssc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer10"
+     inkscape:label="BaseShadow_1"
+     style="display:inline">
+    <g
+       id="g7591"
+       transform="translate(0,-2.1213203)">
+      <path
+         transform="matrix(0.01219366,-0.2777519,7.5503003,-0.01780117,-3095.3084,545.23419)"
+         d="m 430.90102,443.13766 a 135.67928,18.408747 0 1 1 -271.35855,0 135.67928,18.408747 0 1 1 271.35855,0 z"
+         sodipodi:ry="18.408747"
+         sodipodi:rx="135.67928"
+         sodipodi:cy="443.13766"
+         sodipodi:cx="295.22174"
+         id="path6716"
+         style="fill:url(#radialGradient7611);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:nodetypes="cscc"
+         id="path4964"
+         d="m 316.59702,421.17478 c 0,0 58.23544,7.94555 73.90264,26.394 24.79157,29.19259 -118.30811,67.5501 -242.96933,33.90089 213.50314,-1.39087 169.09283,-60.31728 169.09283,-60.31728"
+         style="fill:url(#linearGradient7613);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="Support"
+     style="display:inline">
+    <rect
+       style="fill:#000000;fill-opacity:0.98453603;fill-rule:nonzero;stroke:url(#linearGradient6987);stroke-width:30;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+       id="rect6686"
+       width="72.335358"
+       height="30.264278"
+       x="361.94818"
+       y="-272.03949"
+       transform="matrix(0,1,-1,0,0,0)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer13"
+     inkscape:label="ScreenShade"
+     style="display:inline">
+    <rect
+       style="fill:url(#linearGradient2916);fill-opacity:1;fill-rule:nonzero;stroke:none"
+       id="rect5930"
+       width="473.12555"
+       height="321.87091"
+       x="18.64533"
+       y="19.892525"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
+       inkscape:export-xdpi="121.61401"
+       inkscape:export-ydpi="121.61401" />
+    <path
+       style="fill:url(#linearGradient2913);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline"
+       d="m 492.23643,341.65103 -222.74382,-0.21858 c 0,0 42.71861,-8.28882 90.56766,-25.15824 28.31396,-9.98224 57.59439,-24.1182 83.13673,-38.1986 45.98594,-25.35007 49.03937,-38.90668 49.03937,-38.90668 l 6e-5,102.4821 z"
+       id="path5331"
+       sodipodi:nodetypes="ccsscc"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
+       inkscape:export-xdpi="121.61401"
+       inkscape:export-ydpi="121.61401" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer9"
+     inkscape:label="noVNC_Black"
+     style="display:inline">
+    <path
+       sodipodi:nodetypes="cccc"
+       style="fill:none;stroke:#000000;stroke-width:22.07362747;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       d="m 416.69139,186.74564 c -77.95059,0 -77.95059,0 -77.95059,0 l 0,73.23957 80.00192,0"
+       id="path5134"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
+       inkscape:export-xdpi="121.61401"
+       inkscape:export-ydpi="121.61401" />
+    <path
+       sodipodi:nodetypes="cccc"
+       style="fill:none;stroke:#000000;stroke-width:22.07362747;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       d="m 221.52501,259.96552 0,-74.30876 75.89924,74.67652 0,-73.6827"
+       id="path5132"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
+       inkscape:export-xdpi="121.61401"
+       inkscape:export-ydpi="121.61401" />
+    <g
+       style="fill:none;stroke:#000000;stroke-width:25.32735443;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="g5128"
+       transform="matrix(1.0637273,0,0,0.7140646,-87.846677,11.859872)"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
+       inkscape:export-xdpi="121.61401"
+       inkscape:export-ydpi="121.61401">
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5130"
+         d="m 181.27307,243.94727 0,42.42561 69.52825,61.54333 0,-103.59063"
+         style="fill:none;stroke:#000000;stroke-width:25.32735443;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <path
+       sodipodi:nodetypes="cccc"
+       style="fill:none;stroke:#000000;stroke-width:21.4314537;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       d="m 106.33831,159.40077 0,-72.146954 73.69116,72.504004 0,-71.539108"
+       id="path5136"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
+       inkscape:export-xdpi="121.61401"
+       inkscape:export-ydpi="121.61401" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:21.4314537;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       d="m 219.23536,92.259872 0,71.123858 77.68903,0 -2.0092,-71.123858 c -75.6828,0 -75.67983,0 -75.67983,0 z"
+       id="path5138"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_screen.png"
+       inkscape:export-xdpi="121.61401"
+       inkscape:export-ydpi="121.61401" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="noVNC"
+     style="display:inline">
+    <g
+       style="fill:none;display:inline"
+       id="g5142"
+       transform="matrix(1.0637273,0,0,0.7140646,-87.924897,11.633929)"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
+       inkscape:export-xdpi="4.1999998"
+       inkscape:export-ydpi="4.1999998">
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5144"
+         d="m 181.27307,243.94727 0,42.42561 69.52825,61.54333 0,-103.59063"
+         style="fill:none;stroke:#f2eb41;stroke-width:19.83890915;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <path
+       sodipodi:nodetypes="cccc"
+       style="fill:none;stroke:#f2eb41;stroke-width:17.29026794;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       d="m 221.44679,259.73958 0,-74.30877 75.89925,74.67651 0,-73.68269"
+       id="path5146"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
+       inkscape:export-xdpi="4.1999998"
+       inkscape:export-ydpi="4.1999998" />
+    <path
+       sodipodi:nodetypes="cccc"
+       style="fill:none;stroke:#f2eb41;stroke-width:17.29026794;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       d="m 416.61319,186.51969 c -77.95061,0 -77.95061,0 -77.95061,0 l 0,73.23958 80.00193,0"
+       id="path5148"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
+       inkscape:export-xdpi="4.1999998"
+       inkscape:export-ydpi="4.1999998" />
+    <path
+       sodipodi:nodetypes="cccc"
+       style="fill:none;stroke:#00df00;stroke-width:16.78725243;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       d="m 106.26238,159.1814 0,-72.146955 73.69115,72.503995 0,-71.539084"
+       id="path5150"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
+       inkscape:export-xdpi="4.1999998"
+       inkscape:export-ydpi="4.1999998" />
+    <path
+       style="fill:none;stroke:#00df00;stroke-width:16.78725243;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       d="m 219.15941,92.040508 0,71.123862 77.68904,0 -2.00919,-71.123862 c -75.68283,0 -75.67985,0 -75.67985,0 z"
+       id="path5152"
+       inkscape:export-filename="/home/joelm/Downloads/noVNC_favicon.png"
+       inkscape:export-xdpi="4.1999998"
+       inkscape:export-ydpi="4.1999998" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="noVNC_Save"
+     style="display:none">
+    <g
+       style="display:inline"
+       id="g3903"
+       transform="matrix(0.9560363,0,0,0.9560363,-6.710991,-337.27245)">
+      <g
+         transform="matrix(1.0081199,0,0,1.0081199,-11.487266,-121.24134)"
+         id="g3905"
+         style="fill:none">
+        <path
+           style="fill:none;stroke:#00ff00;stroke-width:19.83890915;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           d="m 83.455645,199.50003 101.674295,0"
+           id="path3907"
+           sodipodi:nodetypes="cc" />
+        <path
+           style="fill:none;stroke:#00ff00;stroke-width:19.83890915;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           d="m 81.687109,243.94727 99.585961,0 0,42.42561 79.06591,61.54333 0,-103.59063"
+           id="path3909"
+           sodipodi:nodetypes="ccccc" />
+        <path
+           style="fill:none;stroke:#00ff00;stroke-width:19.83890915;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           d="M 87.323416,283.46826 175.10772,160.81511"
+           id="path3911"
+           sodipodi:nodetypes="cc" />
+      </g>
+      <path
+         id="path3913"
+         d="m 289.84756,229.03542 0,-104.90947 71.93153,105.42866 0,-104.02559"
+         style="fill:none;stroke:#00ff00;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:nodetypes="cccc" />
+      <path
+         id="path3915"
+         d="m 472.59255,125.66322 c -73.87564,0 -73.87564,0 -73.87564,0 l 0,103.4 75.81973,0"
+         style="fill:none;stroke:#00ff00;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:nodetypes="cccc" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Bezel"
+     style="display:inline">
+    <rect
+       style="fill:none;stroke:#040404;stroke-width:24.66699982;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+       id="rect6660"
+       width="485.7326"
+       height="337.33023"
+       x="14.179501"
+       y="14.179514" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer8"
+     inkscape:label="BezelHighlight"
+     style="display:inline">
+    <rect
+       style="fill:none;stroke:#100626;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:0.89803922;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+       id="rect3888"
+       width="485.7326"
+       height="337.33023"
+       x="13.819346"
+       y="14.179423" />
+  </g>
+</svg>

BIN=BIN
images/favicon.ico


BIN=BIN
images/favicon.png


BIN=BIN
images/full_512x512.png


BIN=BIN
images/screen_640x435.png


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
include/logo.js


+ 11 - 1
include/rfb.js

@@ -8,7 +8,7 @@
 
 "use strict";
 /*jslint white: false, browser: true, bitwise: false, plusplus: false */
-/*global window, WebSocket, Util, Canvas, VNC_native_ws, Base64, DES */
+/*global window, Util, Canvas, VNC_native_ws, Base64, DES */
 
 
 function RFB(conf) {
@@ -347,6 +347,16 @@ updateState = function(state, statusMsg) {
             if (Util.get_logging() !== 'debug') {
                 canvas.clear();
             }
+
+            if ((Util.get_logging() !== 'debug') ||
+                (state === 'loaded')) {
+                // Show noVNC logo on load and when disconnected if
+                // debug is off
+                if (noVNC_logo) {
+                    canvas.resize(noVNC_logo.width, noVNC_logo.height);
+                    canvas.blitStringImage(noVNC_logo.data, 0, 0);
+                }
+            }
         }
 
         ws.close();

+ 1 - 0
include/vnc.js

@@ -32,6 +32,7 @@ function get_INCLUDE_URI() {
 
     extra += start + "util.js" + end;
     extra += start + "webutil.js" + end;
+    extra += start + "logo.js" + end;
     extra += start + "base64.js" + end;
     extra += start + "websock.js" + end;
     extra += start + "des.js" + end;

+ 40 - 0
utils/img2js.py

@@ -0,0 +1,40 @@
+#!/usr/bin/python
+
+#
+# Convert image to Javascript compatible base64 Data URI
+# Copyright 2011 Joel Martin
+# Licensed under LGPL version 3 (see docs/LICENSE.LGPL-3)
+#
+
+import sys, base64
+
+try:
+    from PIL import Image
+except:
+    print "python PIL module required (python-imaging package)"
+    sys.exit(1)
+
+
+if len(sys.argv) < 3:
+    print "Usage: %s IMAGE JS_VARIABLE" % sys.argv[0]
+    sys.exit(1)
+
+fname = sys.argv[1]
+var   = sys.argv[2]
+
+ext = fname.lower().split('.')[-1]
+if   ext == "png":            mime = "image/png"
+elif ext in ["jpg", "jpeg"]:  mime = "image/jpeg"
+elif ext == "gif":            mime = "image/gif"
+else:
+    print "Only PNG, JPEG and GIF images are supported"
+    sys.exit(1)
+uri = "data:%s;base64," % mime
+
+im = Image.open(fname)
+w, h = im.size
+
+raw = open(fname).read()
+
+print '%s = {"width": %s, "height": %s, "data": "%s%s"};' % (
+        var, w, h, uri, base64.b64encode(raw))

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio