<!doctype html>

<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
-->

<html>
<head>
<title>weinre server home</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="images/weinre-icon-64x64.png" />
<script src="versions.js"></script>
<style>
.underline {
    border-bottom:          solid;
}
h1, h2 {
    padding:                0.25em 0.50em;
    background-color:       #DDD;
    border-radius:          0.5em;
    -moz-border-radius:     0.5em;
    -webkit-border-radius:  0.5em;
}
td {
    vertical-align:         top;
}
pre {
    overflow:               auto;
}
textarea {
    width:                  100%;
}
pre, .indent {
    margin-left:            2em;
}
</style>
</head>
<body>
<h1>weinre - <span class="underline">we</span>b <span class="underline">in</span>spector <span class="underline">re</span>mote</h1>


<h2>Access Points</h2>

<table>
<tr><td>debug client user interface: <td> <span id="url-client-ui">???</span>
<tr><td>documentation:               <td> <span id="url-target-documentation">???</span>
</table>

<h2>Target Demos</h2>

<p>The following links point to an already instrumented sample application,
run in a couple of different environmental conditions.

<p>First open a new browser window for the debug client user interface, as
specified above.  Then open another new browser window for one of the demos
below.  They should auto-connect and result in an active debug connection
between the client and the target demo.

<ul>
<li><a href="demo/weinre-demo.html">        the non-minified demo</a>
<li><a href="demo/weinre-demo-min.html">    the minified demo</a>
<li><a href="demo/weinre-demo-strict.html"> the non-minified strict demo</a>
</ul>

<h2>Target Script</h2>

<p>You can use this script to inject the weinre target code into your web page.

<p class="indent"><code><span id="url-target-script">???</span></code>

<p>Example:

<pre>
&ltscript src="<span id="url-target-script-raw">???</span>"&gt;&lt;/script&gt;
</pre>

<h2>Target Bookmarklet</h2>

<p>You can use this bookmarklet to inject the weinre target code into any
web page you are viewing.

<p>link you can drag to your bookmarks:

<div class="indent">
<span id="url-target-bookmarklet">???</span>
</div>

<p>bookmarklet url in a pre:
<pre id="target-bookmarklet-src-pre"></pre>

<p>bookmarklet url in a textarea:
<div class="indent">
<textarea id="target-bookmarklet-src-text-area"></textarea>
</div>

<h2>Development</h2>

<p>interfaces: <span id="url-interfaces">???</span>

<h2>Versions</h2>

<table>
<tr><td>weinre: <td> <span id="version-weinre">???</span>
<tr><td>build:  <td> <span id="version-build">???</span>
</table>

<img src="images/weinre-icon-128x128.png">

<script src="index.js"></script>

</body>
</html>
