r3380 bursa - in /trunk/netsurf/content: fetch.c fetch.h fetchers/fetch_curl.c
by netsurf@semichrome.net
Author: bursa
Date: Wed Jul 4 19:44:13 2007
New Revision: 3380
URL: http://source.netsurf-browser.org?rev=3D3380&view=3Drev
Log:
Fix deadlock when fetching stylesheets when max_fetchers_per_host is reache=
d by splitting fetch_can_be_freed() into fetch_remove_from_queues() and fet=
ch_free().
Modified:
trunk/netsurf/content/fetch.c
trunk/netsurf/content/fetch.h
trunk/netsurf/content/fetchers/fetch_curl.c
Modified: trunk/netsurf/content/fetch.c
URL: http://source.netsurf-browser.org/trunk/netsurf/content/fetch.c?rev=3D=
3380&r1=3D3379&r2=3D3380&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurf/content/fetch.c (original)
+++ trunk/netsurf/content/fetch.c Wed Jul 4 19:44:13 2007
@@ -89,7 +89,6 @@
static void fetch_dispatch_jobs(void);
static bool fetch_choose_and_dispatch(void);
static bool fetch_dispatch_job(struct fetch *fetch);
-static void fetch_free(struct fetch *f);
=
=
/**
@@ -544,8 +543,8 @@
fetch->callback(msg, fetch->p, data, size);
}
=
-void
-fetch_can_be_freed(struct fetch *fetch)
+
+void fetch_remove_from_queues(struct fetch *fetch)
{
int all_active, all_queued;
=
@@ -565,9 +564,8 @@
=
LOG(("Fetch ring is now %d elements.", all_active));
LOG(("Queue ring is now %d elements.", all_queued));
-
- fetch_free(fetch);
-}
+}
+
=
void
fetch_set_http_code(struct fetch *fetch, long http_code)
Modified: trunk/netsurf/content/fetch.h
URL: http://source.netsurf-browser.org/trunk/netsurf/content/fetch.h?rev=3D=
3380&r1=3D3379&r2=3D3380&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurf/content/fetch.h (original)
+++ trunk/netsurf/content/fetch.h Wed Jul 4 19:44:13 2007
@@ -110,7 +110,8 @@
=
void fetch_send_callback(fetch_msg msg, struct fetch *fetch,
const void *data, unsigned long size);
-void fetch_can_be_freed(struct fetch *fetch);
+void fetch_remove_from_queues(struct fetch *fetch);
+void fetch_free(struct fetch *f);
void fetch_set_http_code(struct fetch *fetch, long http_code);
const char *fetch_get_referer_to_send(struct fetch *fetch);
#endif
Modified: trunk/netsurf/content/fetchers/fetch_curl.c
URL: http://source.netsurf-browser.org/trunk/netsurf/content/fetchers/fetch=
_curl.c?rev=3D3380&r1=3D3379&r2=3D3380&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurf/content/fetchers/fetch_curl.c (original)
+++ trunk/netsurf/content/fetchers/fetch_curl.c Wed Jul 4 19:44:13 2007
@@ -644,7 +644,8 @@
if (f->curl_handle) {
f->abort =3D true;
} else {
- fetch_can_be_freed(f->fetch_handle);
+ fetch_remove_from_queues(f->fetch_handle);
+ fetch_free(f->fetch_handle);
}
}
=
@@ -672,7 +673,7 @@
f->curl_handle =3D 0;
}
=
- fetch_can_be_freed(f->fetch_handle);
+ fetch_remove_from_queues(f->fetch_handle);
}
=
=
@@ -808,6 +809,8 @@
else
error =3D true;
=
+ fetch_curl_stop(f);
+
/* If finished, acquire cache info to pass to callback */
if (finished) {
memcpy(&cachedata, &f->cachedata, sizeof(struct cache_data));
@@ -908,7 +911,7 @@
fetch_send_callback(FETCH_ERROR, f->fetch_handle,
fetch_error_buffer, 0);
=
- fetch_curl_stop(f);
+ fetch_free(f->fetch_handle);
}
=
=
16 years, 2 months
r3379 bursa - in /trunk/netsurf/content: fetch.c fetchers/fetch_curl.c fetchers/fetch_curl.h
by netsurf@semichrome.net
Author: bursa
Date: Wed Jul 4 19:05:16 2007
New Revision: 3379
URL: http://source.netsurf-browser.org?rev=3D3379&view=3Drev
Log:
Rename register_curl_fetchers() to fetch_curl_register(). Add declarations =
for static functions and reorder functions.
Modified:
trunk/netsurf/content/fetch.c
trunk/netsurf/content/fetchers/fetch_curl.c
trunk/netsurf/content/fetchers/fetch_curl.h
Modified: trunk/netsurf/content/fetch.c
URL: http://source.netsurf-browser.org/trunk/netsurf/content/fetch.c?rev=3D=
3379&r1=3D3378&r2=3D3379&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurf/content/fetch.c (original)
+++ trunk/netsurf/content/fetch.c Wed Jul 4 19:05:16 2007
@@ -48,16 +48,16 @@
=
/** Information about a fetcher for a given scheme. */
typedef struct scheme_fetcher_s {
- char *scheme_name; /**< The scheme. */
- fetcher_setup_fetch setup_fetch; /**< Set up a fetch. */
- fetcher_start_fetch start_fetch; /**< Start a fetch. */
- fetcher_abort_fetch abort_fetch; /**< Abort a fetch. */
- fetcher_free_fetch free_fetch; /**< Free a fetch. */
- fetcher_poll_fetcher poll_fetcher; /**< Poll this fetcher. */
- fetcher_finalise finaliser; /**< Clean up this fetcher. */
- int refcount; /**< When zero, clean up the fetcher. */
- struct scheme_fetcher_s *next_fetcher; /**< Next fetcher in the li=
st. */
- struct scheme_fetcher_s *prev_fetcher; /**< Prev fetcher in the l=
ist. */
+ char *scheme_name; /**< The scheme. */
+ fetcher_setup_fetch setup_fetch; /**< Set up a fetch. */
+ fetcher_start_fetch start_fetch; /**< Start a fetch. */
+ fetcher_abort_fetch abort_fetch; /**< Abort a fetch. */
+ fetcher_free_fetch free_fetch; /**< Free a fetch. */
+ fetcher_poll_fetcher poll_fetcher; /**< Poll this fetcher. */
+ fetcher_finalise finaliser; /**< Clean up this fetcher. */
+ int refcount; /**< When zero, clean up the fetcher. */
+ struct scheme_fetcher_s *next_fetcher; /**< Next fetcher in the list. */
+ struct scheme_fetcher_s *prev_fetcher; /**< Prev fetcher in the list. */
} scheme_fetcher;
=
static scheme_fetcher *fetchers =3D NULL;
@@ -67,15 +67,16 @@
fetch_callback callback;/**< Callback function. */
bool abort; /**< Abort requested. */
bool stopped; /**< Download stopped on purpose. */
- char *url; /**< URL. */
- char *referer; /**< Referer URL. */
+ char *url; /**< URL. */
+ char *referer; /**< Referer URL. */
bool send_referer; /**< Valid to send the referer */
void *p; /**< Private data for callback. */
char *host; /**< Host part of URL. */
long http_code; /**< HTTP response code, or 0. */
- scheme_fetcher *ops; /**< Fetcher operations for this fetch. NULL =
if not set. */
- void *fetcher_handle; /**< The handle for the fetcher. */
- bool fetch_is_active; /**< This fetch is active. */
+ scheme_fetcher *ops; /**< Fetcher operations for this fetch,
+ NULL if not set. */
+ void *fetcher_handle; /**< The handle for the fetcher. */
+ bool fetch_is_active; /**< This fetch is active. */
struct fetch *r_prev; /**< Previous active fetch in ::fetch_ring. */
struct fetch *r_next; /**< Next active fetch in ::fetch_ring. */
};
@@ -83,65 +84,13 @@
static struct fetch *fetch_ring =3D 0; /**< Ring of active fetches. */
static struct fetch *queue_ring =3D 0; /**< Ring of queued fetches */
=
+#define fetch_ref_fetcher(F) F->refcount++
+static void fetch_unref_fetcher(scheme_fetcher *fetcher);
+static void fetch_dispatch_jobs(void);
+static bool fetch_choose_and_dispatch(void);
+static bool fetch_dispatch_job(struct fetch *fetch);
static void fetch_free(struct fetch *f);
-static void fetch_dispatch_jobs(void);
-
-#define fetch_ref_fetcher(F) F->refcount++;
-
-static void fetch_unref_fetcher(scheme_fetcher *fetcher)
-{
- if (--fetcher->refcount =3D=3D 0) {
- fetcher->finaliser(fetcher->scheme_name);
- free(fetcher->scheme_name);
- if (fetcher =3D=3D fetchers) {
- fetchers =3D fetcher->next_fetcher;
- if (fetchers)
- fetchers->prev_fetcher =3D NULL;
- } else {
- fetcher->prev_fetcher->next_fetcher =3D fetcher->n=
ext_fetcher;
- if (fetcher->next_fetcher !=3D NULL)
- fetcher->next_fetcher->prev_fetcher =3D fe=
tcher->prev_fetcher;
- }
- free(fetcher);
- }
-}
-
-bool
-fetch_add_fetcher(const char *scheme,
- fetcher_initialise initialiser,
- fetcher_setup_fetch setup_fetch,
- fetcher_start_fetch start_fetch,
- fetcher_abort_fetch abort_fetch,
- fetcher_free_fetch free_fetch,
- fetcher_poll_fetcher poll_fetcher,
- fetcher_finalise finaliser)
-{
- scheme_fetcher *new_fetcher;
- if (!initialiser(scheme))
- return false;
- new_fetcher =3D malloc(sizeof(scheme_fetcher));
- if (new_fetcher =3D=3D NULL) {
- finaliser(scheme);
- return false;
- }
- new_fetcher->scheme_name =3D strdup(scheme);
- if (new_fetcher->scheme_name =3D=3D NULL) {
- free(new_fetcher);
- finaliser(scheme);
- return false;
- }
- new_fetcher->refcount =3D 0;
- new_fetcher->setup_fetch =3D setup_fetch;
- new_fetcher->start_fetch =3D start_fetch;
- new_fetcher->abort_fetch =3D abort_fetch;
- new_fetcher->free_fetch =3D free_fetch;
- new_fetcher->poll_fetcher =3D poll_fetcher;
- new_fetcher->finaliser =3D finaliser;
- new_fetcher->next_fetcher =3D fetchers;
- fetchers =3D new_fetcher;
- fetch_ref_fetcher(new_fetcher);
- return true;
-}
+
=
/**
* Initialise the fetcher.
@@ -151,8 +100,8 @@
=
void fetch_init(void)
{
- register_curl_fetchers();
- fetch_active =3D false;
+ fetch_curl_register();
+ fetch_active =3D false;
}
=
=
@@ -164,14 +113,73 @@
=
void fetch_quit(void)
{
- while (fetchers !=3D NULL) {
- if (fetchers->refcount !=3D 1) {
- LOG(("Fetcher for scheme %s still active?!", fetch=
ers->scheme_name));
- /* We shouldn't do this, but... */
- fetchers->refcount =3D 1;
- }
- fetch_unref_fetcher(fetchers);
- }
+ while (fetchers !=3D NULL) {
+ if (fetchers->refcount !=3D 1) {
+ LOG(("Fetcher for scheme %s still active?!",
+ fetchers->scheme_name));
+ /* We shouldn't do this, but... */
+ fetchers->refcount =3D 1;
+ }
+ fetch_unref_fetcher(fetchers);
+ }
+}
+
+
+bool fetch_add_fetcher(const char *scheme,
+ fetcher_initialise initialiser,
+ fetcher_setup_fetch setup_fetch,
+ fetcher_start_fetch start_fetch,
+ fetcher_abort_fetch abort_fetch,
+ fetcher_free_fetch free_fetch,
+ fetcher_poll_fetcher poll_fetcher,
+ fetcher_finalise finaliser)
+{
+ scheme_fetcher *new_fetcher;
+ if (!initialiser(scheme))
+ return false;
+ new_fetcher =3D malloc(sizeof(scheme_fetcher));
+ if (new_fetcher =3D=3D NULL) {
+ finaliser(scheme);
+ return false;
+ }
+ new_fetcher->scheme_name =3D strdup(scheme);
+ if (new_fetcher->scheme_name =3D=3D NULL) {
+ free(new_fetcher);
+ finaliser(scheme);
+ return false;
+ }
+ new_fetcher->refcount =3D 0;
+ new_fetcher->setup_fetch =3D setup_fetch;
+ new_fetcher->start_fetch =3D start_fetch;
+ new_fetcher->abort_fetch =3D abort_fetch;
+ new_fetcher->free_fetch =3D free_fetch;
+ new_fetcher->poll_fetcher =3D poll_fetcher;
+ new_fetcher->finaliser =3D finaliser;
+ new_fetcher->next_fetcher =3D fetchers;
+ fetchers =3D new_fetcher;
+ fetch_ref_fetcher(new_fetcher);
+ return true;
+}
+
+
+void fetch_unref_fetcher(scheme_fetcher *fetcher)
+{
+ if (--fetcher->refcount =3D=3D 0) {
+ fetcher->finaliser(fetcher->scheme_name);
+ free(fetcher->scheme_name);
+ if (fetcher =3D=3D fetchers) {
+ fetchers =3D fetcher->next_fetcher;
+ if (fetchers)
+ fetchers->prev_fetcher =3D NULL;
+ } else {
+ fetcher->prev_fetcher->next_fetcher =3D
+ fetcher->next_fetcher;
+ if (fetcher->next_fetcher !=3D NULL)
+ fetcher->next_fetcher->prev_fetcher =3D
+ fetcher->prev_fetcher;
+ }
+ free(fetcher);
+ }
}
=
=
@@ -196,16 +204,17 @@
*/
=
struct fetch * fetch_start(const char *url, const char *referer,
- fetch_callback callback,
- void *p, bool only_2xx, const char *post_urlenc,
- struct form_successful_control *post_multipart,
- bool verifiable, const char *parent_url, char *=
headers[])
+ fetch_callback callback,
+ void *p, bool only_2xx, const char *post_urlenc,
+ struct form_successful_control *post_multipart,
+ bool verifiable, const char *parent_url,
+ char *headers[])
{
char *host;
struct fetch *fetch;
url_func_result res;
char *ref1 =3D 0, *ref2 =3D 0;
- scheme_fetcher *fetcher =3D fetchers;
+ scheme_fetcher *fetcher =3D fetchers;
=
fetch =3D malloc(sizeof (*fetch));
if (!fetch)
@@ -252,45 +261,45 @@
fetch->http_code =3D 0;
fetch->r_prev =3D 0;
fetch->r_next =3D 0;
- fetch->referer =3D 0;
- fetch->ops =3D 0;
- fetch->fetch_is_active =3D false;
-
- if (referer !=3D NULL) {
- fetch->referer =3D strdup(referer);
- if (fetch->referer =3D=3D NULL)
- goto failed;
+ fetch->referer =3D 0;
+ fetch->ops =3D 0;
+ fetch->fetch_is_active =3D false;
+
+ if (referer !=3D NULL) {
+ fetch->referer =3D strdup(referer);
+ if (fetch->referer =3D=3D NULL)
+ goto failed;
if (option_send_referer && ref1 && ref2 &&
strcasecmp(ref1, ref2) =3D=3D 0)
fetch->send_referer =3D true;
- }
+ }
=
if (!fetch->url)
goto failed;
=
- /* Pick the scheme ops */
- while (fetcher) {
- if (strcmp(fetcher->scheme_name, ref1) =3D=3D 0) {
- fetch->ops =3D fetcher;
- break;
- }
- fetcher =3D fetcher->next_fetcher;
- }
-
- if (fetch->ops =3D=3D NULL)
- goto failed;
-
- /* Got a scheme fetcher, try and set up the fetch */
- fetch->fetcher_handle =3D
- fetch->ops->setup_fetch(fetch, url, only_2xx, post_urlenc,
- post_multipart, verifiable, parent=
_url,
- (const char **)headers);
-
- if (fetch->fetcher_handle =3D=3D NULL)
- goto failed;
-
- /* Rah, got it, so ref the fetcher. */
- fetch_ref_fetcher(fetch->ops);
+ /* Pick the scheme ops */
+ while (fetcher) {
+ if (strcmp(fetcher->scheme_name, ref1) =3D=3D 0) {
+ fetch->ops =3D fetcher;
+ break;
+ }
+ fetcher =3D fetcher->next_fetcher;
+ }
+
+ if (fetch->ops =3D=3D NULL)
+ goto failed;
+
+ /* Got a scheme fetcher, try and set up the fetch */
+ fetch->fetcher_handle =3D
+ fetch->ops->setup_fetch(fetch, url, only_2xx, post_urlenc,
+ post_multipart, verifiable, parent_url,
+ (const char **)headers);
+
+ if (fetch->fetcher_handle =3D=3D NULL)
+ goto failed;
+
+ /* Rah, got it, so ref the fetcher. */
+ fetch_ref_fetcher(fetch->ops);
=
/* these aren't needed past here */
if (ref1) {
@@ -298,12 +307,12 @@
ref1 =3D 0;
}
=
- if (ref2) {
- free(ref2);
- ref2 =3D 0;
- }
-
- /* Dump us in the queue and ask the queue to run. */
+ if (ref2) {
+ free(ref2);
+ ref2 =3D 0;
+ }
+
+ /* Dump us in the queue and ask the queue to run. */
RING_INSERT(queue_ring, fetch);
fetch_dispatch_jobs();
return fetch;
@@ -313,59 +322,17 @@
if (ref1)
free(ref1);
free(fetch->url);
- if (fetch->referer)
- free(fetch->referer);
- free(fetch);
+ if (fetch->referer)
+ free(fetch->referer);
+ free(fetch);
return 0;
}
=
-/**
- * Dispatch a single job
- */
-static bool fetch_dispatch_job(struct fetch *fetch)
-{
- RING_REMOVE(queue_ring, fetch);
- LOG(("Attempting to start fetch %p, fetcher %p, url %s", fetch,
- fetch->fetcher_handle, fetch->url));
- if (!fetch->ops->start_fetch(fetch->fetcher_handle)) {
- RING_INSERT(queue_ring, fetch); /* Put it back on the end of the queue */
- return false;
- } else {
- RING_INSERT(fetch_ring, fetch);
- fetch->fetch_is_active =3D true;
- return true;
- }
-}
-
-/**
- * Choose and dispatch a single job. Return false if we failed to dispatch=
anything.
- *
- * We don't check the overall dispatch size here because we're not called =
unless
- * there is room in the fetch queue for us.
- */
-static bool fetch_choose_and_dispatch(void)
-{
- struct fetch *queueitem;
- queueitem =3D queue_ring;
- do {
- /* We can dispatch the selected item if there is room in the
- * fetch ring
- */
- int countbyhost;
- RING_COUNTBYHOST(struct fetch, fetch_ring, countbyhost, queueitem->host);
- if (countbyhost < option_max_fetchers_per_host) {
- /* We can dispatch this item in theory */
- return fetch_dispatch_job(queueitem);
- }
- queueitem =3D queueitem->r_next;
- } while (queueitem !=3D queue_ring);
- return false;
-}
=
/**
* Dispatch as many jobs as we have room to dispatch.
*/
-static void fetch_dispatch_jobs(void)
+void fetch_dispatch_jobs(void)
{
int all_active, all_queued;
=
@@ -373,6 +340,24 @@
return; /* Nothing to do, the queue is empty */
RING_GETSIZE(struct fetch, queue_ring, all_queued);
RING_GETSIZE(struct fetch, fetch_ring, all_active);
+
+ LOG(("queue_ring %i, fetch_ring %i", all_queued, all_active));
+
+ struct fetch *q =3D queue_ring;
+ if (q) {
+ do {
+ LOG(("queue_ring: %s", q->url));
+ q =3D q->r_next;
+ } while (q !=3D queue_ring);
+ }
+ struct fetch *f =3D fetch_ring;
+ if (f) {
+ do {
+ LOG(("fetch_ring: %s", f->url));
+ f =3D f->r_next;
+ } while (f !=3D fetch_ring);
+ }
+
while ( all_queued && all_active < option_max_fetchers ) {
/*LOG(("%d queued, %d fetching", all_queued, all_active));*/
if (fetch_choose_and_dispatch()) {
@@ -383,10 +368,58 @@
break;
}
}
- fetch_active =3D (all_active > 0);
- LOG(("Fetch ring is now %d elements.", all_active));
- LOG(("Queue ring is now %d elements.", all_queued));
-}
+ fetch_active =3D (all_active > 0);
+ LOG(("Fetch ring is now %d elements.", all_active));
+ LOG(("Queue ring is now %d elements.", all_queued));
+}
+
+
+/**
+ * Choose and dispatch a single job. Return false if we failed to dispatch
+ * anything.
+ *
+ * We don't check the overall dispatch size here because we're not called =
unless
+ * there is room in the fetch queue for us.
+ */
+bool fetch_choose_and_dispatch(void)
+{
+ struct fetch *queueitem;
+ queueitem =3D queue_ring;
+ do {
+ /* We can dispatch the selected item if there is room in the
+ * fetch ring
+ */
+ int countbyhost;
+ RING_COUNTBYHOST(struct fetch, fetch_ring, countbyhost,
+ queueitem->host);
+ if (countbyhost < option_max_fetchers_per_host) {
+ /* We can dispatch this item in theory */
+ return fetch_dispatch_job(queueitem);
+ }
+ queueitem =3D queueitem->r_next;
+ } while (queueitem !=3D queue_ring);
+ return false;
+}
+
+
+/**
+ * Dispatch a single job
+ */
+bool fetch_dispatch_job(struct fetch *fetch)
+{
+ RING_REMOVE(queue_ring, fetch);
+ LOG(("Attempting to start fetch %p, fetcher %p, url %s", fetch,
+ fetch->fetcher_handle, fetch->url));
+ if (!fetch->ops->start_fetch(fetch->fetcher_handle)) {
+ RING_INSERT(queue_ring, fetch); /* Put it back on the end of the queue */
+ return false;
+ } else {
+ RING_INSERT(fetch_ring, fetch);
+ fetch->fetch_is_active =3D true;
+ return true;
+ }
+}
+
=
/**
* Abort a fetch.
@@ -396,7 +429,7 @@
{
assert(f);
LOG(("fetch %p, fetcher %p, url '%s'", f, f->fetcher_handle, f->url));
- f->ops->abort_fetch(f->fetcher_handle);
+ f->ops->abort_fetch(f->fetcher_handle);
}
=
=
@@ -406,13 +439,13 @@
=
void fetch_free(struct fetch *f)
{
- LOG(("Freeing fetch %p, fetcher %p", f, f->fetcher_handle));
- f->ops->free_fetch(f->fetcher_handle);
- fetch_unref_fetcher(f->ops);
+ LOG(("Freeing fetch %p, fetcher %p", f, f->fetcher_handle));
+ f->ops->free_fetch(f->fetcher_handle);
+ fetch_unref_fetcher(f->ops);
free(f->url);
free(f->host);
- if (f->referer)
- free(f->referer);
+ if (f->referer)
+ free(f->referer);
free(f);
}
=
@@ -425,14 +458,17 @@
=
void fetch_poll(void)
{
- scheme_fetcher *fetcher =3D fetchers;
- if (!fetch_active)
- return; /* No point polling, there's no fetch active. */
- while (fetcher !=3D NULL) {
- /* LOG(("Polling fetcher for %s", fetcher->scheme_name)); =
*/
- fetcher->poll_fetcher(fetcher->scheme_name);
- fetcher =3D fetcher->next_fetcher;
- }
+ scheme_fetcher *fetcher =3D fetchers;
+
+ fetch_dispatch_jobs();
+
+ if (!fetch_active)
+ return; /* No point polling, there's no fetch active. */
+ while (fetcher !=3D NULL) {
+ /* LOG(("Polling fetcher for %s", fetcher->scheme_name)); */
+ fetcher->poll_fetcher(fetcher->scheme_name);
+ fetcher =3D fetcher->next_fetcher;
+ }
}
=
=
@@ -447,18 +483,18 @@
{
const char *semi;
size_t len;
- scheme_fetcher *fetcher =3D fetchers;
+ scheme_fetcher *fetcher =3D fetchers;
=
if ((semi =3D strchr(url, ':')) =3D=3D NULL)
return false;
len =3D semi - url;
=
- while (fetcher !=3D NULL) {
- if (strlen(fetcher->scheme_name) =3D=3D len &&
- strncmp(fetcher->scheme_name, url, len) =3D=3D 0)
- return true;
- fetcher =3D fetcher->next_fetcher;
- }
+ while (fetcher !=3D NULL) {
+ if (strlen(fetcher->scheme_name) =3D=3D len &&
+ strncmp(fetcher->scheme_name, url, len) =3D=3D 0)
+ return true;
+ fetcher =3D fetcher->next_fetcher;
+ }
=
return false;
}
@@ -469,8 +505,8 @@
*/
=
void fetch_change_callback(struct fetch *fetch,
- fetch_callback callback,
- void *p)
+ fetch_callback callback,
+ void *p)
{
assert(fetch);
fetch->callback =3D callback;
@@ -503,49 +539,47 @@
fetch_send_callback(fetch_msg msg, struct fetch *fetch, const void *data,
unsigned long size)
{
- LOG(("Fetcher sending callback. Fetch %p, fetcher %p data %p size =
%lu",
- fetch, fetch->fetcher_handle, data, size));
- fetch->callback(msg, fetch->p, data, size);
+ LOG(("Fetcher sending callback. Fetch %p, fetcher %p data %p size %lu",
+ fetch, fetch->fetcher_handle, data, size));
+ fetch->callback(msg, fetch->p, data, size);
}
=
void
fetch_can_be_freed(struct fetch *fetch)
{
- int all_active, all_queued;
- =
- /* Go ahead and free the fetch properly now */
- LOG(("Fetch %p, fetcher %p can be freed", fetch, fetch->fetcher_ha=
ndle));
- =
- if (fetch->fetch_is_active) {
- RING_REMOVE(fetch_ring, fetch);
- } else {
- RING_REMOVE(queue_ring, fetch);
- }
- =
+ int all_active, all_queued;
+
+ /* Go ahead and free the fetch properly now */
+ LOG(("Fetch %p, fetcher %p can be freed", fetch, fetch->fetcher_handle));
+
+ if (fetch->fetch_is_active) {
+ RING_REMOVE(fetch_ring, fetch);
+ } else {
+ RING_REMOVE(queue_ring, fetch);
+ }
+
RING_GETSIZE(struct fetch, fetch_ring, all_active);
RING_GETSIZE(struct fetch, queue_ring, all_queued);
- =
- fetch_active =3D (all_active > 0);
- =
- LOG(("Fetch ring is now %d elements.", all_active));
- LOG(("Queue ring is now %d elements.", all_queued));
-
- fetch_free(fetch);
- =
- fetch_dispatch_jobs();
+
+ fetch_active =3D (all_active > 0);
+
+ LOG(("Fetch ring is now %d elements.", all_active));
+ LOG(("Queue ring is now %d elements.", all_queued));
+
+ fetch_free(fetch);
}
=
void
fetch_set_http_code(struct fetch *fetch, long http_code)
{
- LOG(("Setting HTTP code to %ld", http_code));
- fetch->http_code =3D http_code;
+ LOG(("Setting HTTP code to %ld", http_code));
+ fetch->http_code =3D http_code;
}
=
const char *
fetch_get_referer_to_send(struct fetch *fetch)
{
- if (fetch->send_referer)
- return fetch->referer;
- return NULL;
-}
+ if (fetch->send_referer)
+ return fetch->referer;
+ return NULL;
+}
Modified: trunk/netsurf/content/fetchers/fetch_curl.c
URL: http://source.netsurf-browser.org/trunk/netsurf/content/fetchers/fetch=
_curl.c?rev=3D3379&r1=3D3378&r2=3D3379&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurf/content/fetchers/fetch_curl.c (original)
+++ trunk/netsurf/content/fetchers/fetch_curl.c Wed Jul 4 19:05:16 2007
@@ -57,15 +57,15 @@
=
/** Information for a single fetch. */
struct curl_fetch_info {
- struct fetch *fetch_handle; /**< The fetch handle we're parented b=
y. */
+ struct fetch *fetch_handle; /**< The fetch handle we're parented by. */
CURL * curl_handle; /**< cURL handle if being fetched, or 0. */
bool had_headers; /**< Headers have been processed. */
bool abort; /**< Abort requested. */
bool stopped; /**< Download stopped on purpose. */
bool only_2xx; /**< Only HTTP 2xx responses acceptable. */
bool verifiable; /**< Transaction is verifiable */
- char *url; /**< URL of this fetch. */
- char *host; /**< The hostname of this fetch. */
+ char *url; /**< URL of this fetch. */
+ char *host; /**< The hostname of this fetch. */
char *parent_fetch_url; /**< URL of parent fetch (not necessarily
* the same as the referer) */
struct curl_slist *headers; /**< List of request headers. */
@@ -74,7 +74,7 @@
char *cookie_string; /**< Cookie string for this fetch */
char *realm; /**< HTTP Auth Realm */
char *post_urlenc; /**< Url encoded POST string, or 0. */
- unsigned long http_code; /**< HTTP result code from cURL. */
+ unsigned long http_code; /**< HTTP result code from cURL. */
struct curl_httppost *post_multipart; /**< Multipart post data, or 0. */
struct cache_data cachedata; /**< Cache control data */
time_t last_modified; /**< If-Modified-Since time */
@@ -97,20 +97,36 @@
/** Curl handle with default options set; not used for transfers. */
static CURL *fetch_blank_curl;
static struct cache_handle *curl_handle_ring =3D 0; /**< Ring of cached ha=
ndles */
+static int curl_fetchers_registered =3D 0;
=
static char fetch_error_buffer[CURL_ERROR_SIZE]; /**< Error buffer for cUR=
L. */
static char fetch_progress_buffer[256]; /**< Progress buffer for cURL */
static char fetch_proxy_userpwd[100]; /**< Proxy authentication details. */
=
+static bool fetch_curl_initialise(const char *scheme);
+static void fetch_curl_finalise(const char *scheme);
+static void * fetch_curl_setup(struct fetch *parent_fetch, const char *url,
+ bool only_2xx, const char *post_urlenc,
+ struct form_successful_control *post_multipart,
+ bool verifiable, const char *parent_url, const char **headers);
+static bool fetch_curl_start(void *vfetch);
+static bool fetch_curl_initiate_fetch(struct curl_fetch_info *fetch,
+ CURL *handle);
+static CURL *fetch_curl_get_handle(char *host);
+static void fetch_curl_cache_handle(CURL *handle, char *hostname);
static CURLcode fetch_curl_set_options(struct curl_fetch_info *f);
#ifdef WITH_SSL
-static CURLcode fetch_curl_sslctxfun(CURL *curl_handle, SSL_CTX *sslctx, v=
oid *p);
-#endif
+static CURLcode fetch_curl_sslctxfun(CURL *curl_handle, SSL_CTX *sslctx,
+ void *p);
+#endif
+static void fetch_curl_abort(void *vf);
+static void fetch_curl_stop(struct curl_fetch_info *f);
static void fetch_curl_free(void *f);
-static void fetch_curl_stop(struct curl_fetch_info *f);
+static void fetch_curl_poll(const char *scheme_ignored);
static void fetch_curl_done(CURL *curl_handle, CURLcode result);
static int fetch_curl_progress(void *clientp, double dltotal, double dlnow,
double ultotal, double ulnow);
+static int fetch_curl_ignore(void);
static size_t fetch_curl_data(void *data, size_t size, size_t nmemb,
struct curl_fetch_info *f);
static size_t fetch_curl_header(char *data, size_t size, size_t nmemb,
@@ -119,11 +135,133 @@
static struct curl_httppost *fetch_curl_post_convert(
struct form_successful_control *control);
#ifdef WITH_SSL
-static int fetch_curl_verify_callback(int preverify_ok, X509_STORE_CTX *x5=
09_ctx);
-static int fetch_curl_cert_verify_callback(X509_STORE_CTX *x509_ctx, void =
*parm);
-#endif
-
-static void fetch_curl_cache_handle(CURL *handle, char *hostname);
+static int fetch_curl_verify_callback(int preverify_ok,
+ X509_STORE_CTX *x509_ctx);
+static int fetch_curl_cert_verify_callback(X509_STORE_CTX *x509_ctx,
+ void *parm);
+#endif
+
+
+/**
+ * Initialise the fetcher.
+ *
+ * Must be called once before any other function.
+ */
+
+void fetch_curl_register(void)
+{
+ CURLcode code;
+ curl_version_info_data *data;
+ int i;
+
+ LOG(("curl_version %s", curl_version()));
+
+ code =3D curl_global_init(CURL_GLOBAL_ALL);
+ if (code !=3D CURLE_OK)
+ die("Failed to initialise the fetch module "
+ "(curl_global_init failed).");
+
+ fetch_curl_multi =3D curl_multi_init();
+ if (!fetch_curl_multi)
+ die("Failed to initialise the fetch module "
+ "(curl_multi_init failed).");
+
+ /* Create a curl easy handle with the options that are common to all
+ fetches. */
+ fetch_blank_curl =3D curl_easy_init();
+ if (!fetch_blank_curl)
+ die("Failed to initialise the fetch module "
+ "(curl_easy_init failed).");
+
+#undef SETOPT
+#define SETOPT(option, value) \
+ code =3D curl_easy_setopt(fetch_blank_curl, option, value); \
+ if (code !=3D CURLE_OK) \
+ goto curl_easy_setopt_failed;
+
+ if (verbose_log) {
+ SETOPT(CURLOPT_VERBOSE, 1);
+ } else {
+ SETOPT(CURLOPT_VERBOSE, 0);
+ }
+ SETOPT(CURLOPT_ERRORBUFFER, fetch_error_buffer);
+ if (option_suppress_curl_debug)
+ SETOPT(CURLOPT_DEBUGFUNCTION, fetch_curl_ignore);
+ SETOPT(CURLOPT_WRITEFUNCTION, fetch_curl_data);
+ SETOPT(CURLOPT_HEADERFUNCTION, fetch_curl_header);
+ SETOPT(CURLOPT_PROGRESSFUNCTION, fetch_curl_progress);
+ SETOPT(CURLOPT_NOPROGRESS, 0);
+ SETOPT(CURLOPT_USERAGENT, user_agent_string());
+ SETOPT(CURLOPT_ENCODING, "gzip");
+ SETOPT(CURLOPT_LOW_SPEED_LIMIT, 1L);
+ SETOPT(CURLOPT_LOW_SPEED_TIME, 180L);
+ SETOPT(CURLOPT_NOSIGNAL, 1L);
+ SETOPT(CURLOPT_CONNECTTIMEOUT, 30L);
+
+ if (option_ca_bundle && strcmp(option_ca_bundle, ""))
+ SETOPT(CURLOPT_CAINFO, option_ca_bundle);
+ if (option_ca_path && strcmp(option_ca_path, ""))
+ SETOPT(CURLOPT_CAPATH, option_ca_path);
+
+ /* cURL initialised okay, register the fetchers */
+
+ data =3D curl_version_info(CURLVERSION_NOW);
+
+ for (i =3D 0; data->protocols[i]; i++)
+ if (!fetch_add_fetcher(data->protocols[i],
+ fetch_curl_initialise,
+ fetch_curl_setup,
+ fetch_curl_start,
+ fetch_curl_abort,
+ fetch_curl_free,
+ fetch_curl_poll,
+ fetch_curl_finalise)) {
+ LOG(("Unable to register cURL fetcher for %s",
+ data->protocols[i]));
+ }
+ return;
+
+curl_easy_setopt_failed:
+ die("Failed to initialise the fetch module "
+ "(curl_easy_setopt failed).");
+}
+
+
+/**
+ * Initialise a cURL fetcher.
+ */
+
+bool fetch_curl_initialise(const char *scheme)
+{
+ LOG(("Initialise cURL fetcher for %s", scheme));
+ curl_fetchers_registered++;
+ return true; /* Always succeeds */
+}
+
+
+/**
+ * Finalise a cURL fetcher
+ */
+
+void fetch_curl_finalise(const char *scheme)
+{
+ curl_fetchers_registered--;
+ LOG(("Finalise cURL fetcher %s", scheme));
+ if (curl_fetchers_registered =3D=3D 0) {
+ /* All the fetchers have been finalised. */
+ LOG(("All cURL fetchers finalised, closing down cURL"));
+ CURLMcode codem;
+
+ curl_easy_cleanup(fetch_blank_curl);
+
+ codem =3D curl_multi_cleanup(fetch_curl_multi);
+ if (codem !=3D CURLM_OK)
+ LOG(("curl_multi_cleanup failed: ignoring"));
+
+ curl_global_cleanup();
+ }
+}
+
=
/**
* Start fetching data for the given URL.
@@ -147,11 +285,10 @@
* callbacks will contain this.
*/
=
-static void *
-fetch_curl_setup(struct fetch *parent_fetch, const char *url,
- bool only_2xx, const char *post_urlenc,
- struct form_successful_control *post_multipart,
- bool verifiable, const char *parent_url, const char **hea=
ders)
+void * fetch_curl_setup(struct fetch *parent_fetch, const char *url,
+ bool only_2xx, const char *post_urlenc,
+ struct form_successful_control *post_multipart,
+ bool verifiable, const char *parent_url, const char **headers)
{
char *host;
struct curl_fetch_info *fetch;
@@ -163,7 +300,7 @@
if (!fetch)
return 0;
=
- fetch->fetch_handle =3D parent_fetch;
+ fetch->fetch_handle =3D parent_fetch;
=
res =3D url_host(url, &host);
if (res !=3D URL_FUNC_OK) {
@@ -176,7 +313,7 @@
goto failed;
}
=
- LOG(("fetch %p, url '%s'", fetch, url));
+ LOG(("fetch %p, url '%s'", fetch, url));
=
/* construct a new fetch structure */
fetch->curl_handle =3D 0;
@@ -211,15 +348,15 @@
fetch->cachedata.last_modified =3D 0;
fetch->last_modified =3D 0;
fetch->file_etag =3D 0;
- fetch->http_code =3D 0;
+ fetch->http_code =3D 0;
#ifdef WITH_SSL
memset(fetch->cert_data, 0, sizeof(fetch->cert_data));
#endif
=
if (!fetch->url ||
- (parent_url && !fetch->parent_fetch_url) ||
- (post_urlenc && !fetch->post_urlenc) ||
- (post_multipart && !fetch->post_multipart))
+ (parent_url && !fetch->parent_fetch_url) ||
+ (post_urlenc && !fetch->post_urlenc) ||
+ (post_multipart && !fetch->post_multipart))
goto failed;
=
#define APPEND(list, value) \
@@ -284,14 +421,28 @@
return 0;
}
=
+
+/**
+ * Dispatch a single job
+ */
+bool fetch_curl_start(void *vfetch)
+{
+ struct curl_fetch_info *fetch =3D (struct curl_fetch_info*)vfetch;
+ return fetch_curl_initiate_fetch(fetch,
+ fetch_curl_get_handle(fetch->host));
+}
+
+
/**
* Initiate a fetch from the queue.
*
- * Called with a fetch structure and a CURL handle to be used to fetch the=
content.
+ * Called with a fetch structure and a CURL handle to be used to fetch the
+ * content.
*
* This will return whether or not the fetch was successfully initiated.
*/
-static bool fetch_curl_initiate_fetch(struct curl_fetch_info *fetch, CURL =
*handle)
+
+bool fetch_curl_initiate_fetch(struct curl_fetch_info *fetch, CURL *handle)
{
CURLcode code;
CURLMcode codem;
@@ -312,10 +463,12 @@
return true;
}
=
+
/**
* Find a CURL handle to use to dispatch a job
*/
-static CURL *fetch_curl_get_handle(char *host)
+
+CURL *fetch_curl_get_handle(char *host)
{
struct cache_handle *h;
CURL *ret;
@@ -331,20 +484,12 @@
return ret;
}
=
-/**
- * Dispatch a single job
- */
-static bool fetch_curl_start(void *vfetch)
-{
- struct curl_fetch_info *fetch =3D (struct curl_fetch_info*)vfetch;
- return fetch_curl_initiate_fetch(fetch, fetch_curl_get_handle(fetch->host=
));
-}
=
/**
* Cache a CURL handle for the provided host (if wanted)
- *
- */
-static void fetch_curl_cache_handle(CURL *handle, char *host)
+ */
+
+void fetch_curl_cache_handle(CURL *handle, char *host)
{
struct cache_handle *h =3D 0;
int c;
@@ -377,11 +522,12 @@
RING_INSERT(curl_handle_ring, h);
}
=
+
/**
* Set options specific for a fetch.
*/
=
-static CURLcode
+CURLcode
fetch_curl_set_options(struct curl_fetch_info *f)
{
CURLcode code;
@@ -475,12 +621,12 @@
* cURL SSL setup callback
*/
=
-static CURLcode
+CURLcode
fetch_curl_sslctxfun(CURL *curl_handle, SSL_CTX *sslctx, void *parm)
{
SSL_CTX_set_verify(sslctx, SSL_VERIFY_PEER, fetch_curl_verify_callback);
SSL_CTX_set_cert_verify_callback(sslctx, fetch_curl_cert_verify_callback,
- parm);
+ parm);
return CURLE_OK;
}
#endif
@@ -490,15 +636,15 @@
* Abort a fetch.
*/
=
-static void fetch_curl_abort(void *vf)
-{
- struct curl_fetch_info *f =3D (struct curl_fetch_info *)vf;
+void fetch_curl_abort(void *vf)
+{
+ struct curl_fetch_info *f =3D (struct curl_fetch_info *)vf;
assert(f);
LOG(("fetch %p, url '%s'", f, f->url));
if (f->curl_handle) {
f->abort =3D true;
} else {
- fetch_can_be_freed(f->fetch_handle);
+ fetch_can_be_freed(f->fetch_handle);
}
}
=
@@ -509,7 +655,7 @@
* Will prod the queue afterwards to allow pending requests to be initiate=
d.
*/
=
-static void fetch_curl_stop(struct curl_fetch_info *f)
+void fetch_curl_stop(struct curl_fetch_info *f)
{
CURLMcode codem;
=
@@ -534,9 +680,9 @@
* Free a fetch structure and associated resources.
*/
=
-static void fetch_curl_free(void *vf)
-{
- struct curl_fetch_info *f =3D (struct curl_fetch_info *)vf;
+void fetch_curl_free(void *vf)
+{
+ struct curl_fetch_info *f =3D (struct curl_fetch_info *)vf;
#ifdef WITH_SSL
int i;
#endif
@@ -574,7 +720,7 @@
* Must be called regularly to make progress on fetches.
*/
=
-static void fetch_curl_poll(const char *scheme_ignored)
+void fetch_curl_poll(const char *scheme_ignored)
{
int running, queue;
CURLMcode codem;
@@ -608,7 +754,7 @@
* \param curl_handle curl easy handle of fetch
*/
=
-static void fetch_curl_done(CURL *curl_handle, CURLcode result)
+void fetch_curl_done(CURL *curl_handle, CURLcode result)
{
bool finished =3D false;
bool error =3D false;
@@ -629,6 +775,7 @@
assert(code =3D=3D CURLE_OK);
=
abort =3D f->abort;
+ LOG(("done %s", f->url));
=
if (!abort && result =3D=3D CURLE_OK) {
/* fetch completed normally */
@@ -667,11 +814,11 @@
f->cachedata.etag =3D 0;
}
=
- /* postponed until after stop so that queue fetches are started */
if (abort)
; /* fetch was aborted: no callback */
else if (finished) {
- fetch_send_callback(FETCH_FINISHED, f->fetch_handle, &cachedata, 0);
+ fetch_send_callback(FETCH_FINISHED, f->fetch_handle,
+ &cachedata, 0);
free(cachedata.etag);
}
#ifdef WITH_SSL
@@ -752,14 +899,16 @@
X509_free(certs[i].cert);
}
=
- fetch_send_callback(FETCH_CERT_ERR, f->fetch_handle, &ssl_certs, i);
+ fetch_send_callback(FETCH_CERT_ERR, f->fetch_handle,
+ &ssl_certs, i);
=
}
#endif
else if (error)
- fetch_send_callback(FETCH_ERROR, f->fetch_handle, fetch_error_buffer, 0);
-
- fetch_curl_stop(f);
+ fetch_send_callback(FETCH_ERROR, f->fetch_handle,
+ fetch_error_buffer, 0);
+
+ fetch_curl_stop(f);
}
=
=
@@ -768,7 +917,7 @@
*/
=
int fetch_curl_progress(void *clientp, double dltotal, double dlnow,
- double ultotal, double ulnow)
+ double ultotal, double ulnow)
{
struct curl_fetch_info *f =3D (struct curl_fetch_info *) clientp;
double percent;
@@ -783,26 +932,39 @@
human_friendly_bytesize(dlnow),
human_friendly_bytesize(dltotal));
fetch_send_callback(FETCH_PROGRESS, f->fetch_handle,
- fetch_progress_buffer,
- (unsigned long) percent);
+ fetch_progress_buffer,
+ (unsigned long) percent);
} else {
snprintf(fetch_progress_buffer, 255,
messages_get("ProgressU"),
human_friendly_bytesize(dlnow));
fetch_send_callback(FETCH_PROGRESS, f->fetch_handle,
- fetch_progress_buffer, 0);
+ fetch_progress_buffer, 0);
}
=
return 0;
}
=
=
+
+/**
+ * Ignore everything given to it.
+ *
+ * Used to ignore cURL debug.
+ */
+
+int fetch_curl_ignore(void)
+{
+ return 0;
+}
+
+
/**
* Callback function for cURL.
*/
=
size_t fetch_curl_data(void *data, size_t size, size_t nmemb,
- struct curl_fetch_info *f)
+ struct curl_fetch_info *f)
{
CURLcode code;
=
@@ -810,8 +972,8 @@
if (!f->http_code)
{
code =3D curl_easy_getinfo(f->curl_handle, CURLINFO_HTTP_CODE,
- &f->http_code);
- fetch_set_http_code(f->fetch_handle, f->http_code);
+ &f->http_code);
+ fetch_set_http_code(f->fetch_handle, f->http_code);
assert(code =3D=3D CURLE_OK);
}
=
@@ -848,7 +1010,7 @@
*/
=
size_t fetch_curl_header(char *data, size_t size, size_t nmemb,
- struct curl_fetch_info *f)
+ struct curl_fetch_info *f)
{
int i;
size *=3D nmemb;
@@ -1024,8 +1186,8 @@
if (!f->http_code)
{
code =3D curl_easy_getinfo(f->curl_handle, CURLINFO_HTTP_CODE,
- &f->http_code);
- fetch_set_http_code(f->fetch_handle, f->http_code);
+ &f->http_code);
+ fetch_set_http_code(f->fetch_handle, f->http_code);
assert(code =3D=3D CURLE_OK);
}
http_code =3D f->http_code;
@@ -1034,7 +1196,7 @@
if (http_code =3D=3D 304 && !f->post_urlenc && !f->post_multipart) {
/* Not Modified && GET request */
fetch_send_callback(FETCH_NOTMODIFIED, f->fetch_handle,
- (const char *)&f->cachedata, 0);
+ (const char *)&f->cachedata, 0);
return true;
}
=
@@ -1057,7 +1219,7 @@
if (f->only_2xx && strncmp(f->url, "http", 4) =3D=3D 0 &&
(http_code < 200 || 299 < http_code)) {
fetch_send_callback(FETCH_ERROR, f->fetch_handle,
- messages_get("Not2xx"), 0);
+ messages_get("Not2xx"), 0);
return true;
}
=
@@ -1086,7 +1248,7 @@
f->last_modified > s.st_mtime &&
f->file_etag =3D=3D s.st_mtime) {
fetch_send_callback(FETCH_NOTMODIFIED, f->fetch_handle,
- (const char *)&f->cachedata, 0=
);
+ (const char *)&f->cachedata, 0);
curl_free(url_path);
return true;
}
@@ -1257,122 +1419,3 @@
}
#endif
=
-static int curl_fetchers_registered =3D 0;
-/** Initialise a cURL fetcher */
-static bool
-fetch_curl_initialise(const char *scheme)
-{
- LOG(("Initialise cURL fetcher for %s", scheme));
- curl_fetchers_registered++;
- return true; /* Always succeeds */
-}
-
-/** Finalise a cURL fetcher */
-static void
-fetch_curl_finalise(const char *scheme)
-{
- curl_fetchers_registered--;
- LOG(("Finalise cURL fetcher %s", scheme));
- if (curl_fetchers_registered =3D=3D 0) {
- /* All the fetchers have been finalised. */
- LOG(("All cURL fetchers finalised, closing down cURL"));
- CURLMcode codem;
-
- curl_easy_cleanup(fetch_blank_curl);
-
- codem =3D curl_multi_cleanup(fetch_curl_multi);
- if (codem !=3D CURLM_OK)
- LOG(("curl_multi_cleanup failed: ignoring"));
-
- curl_global_cleanup();
- }
-}
-
-/** Ignore everything given to it.
- *
- * Used to ignore cURL debug.
- */
-int fetch_curl_ignore(void) { return 0; }
-
-/**
- * Initialise the fetcher.
- *
- * Must be called once before any other function.
- */
-
-void register_curl_fetchers(void)
-{
- CURLcode code;
- curl_version_info_data *data;
- int i;
-
- LOG(("curl_version %s", curl_version()));
-
- code =3D curl_global_init(CURL_GLOBAL_ALL);
- if (code !=3D CURLE_OK)
- die("Failed to initialise the fetch module "
- "(curl_global_init failed).");
-
- fetch_curl_multi =3D curl_multi_init();
- if (!fetch_curl_multi)
- die("Failed to initialise the fetch module "
- "(curl_multi_init failed).");
-
- /* Create a curl easy handle with the options that are common to all
- fetches. */
- fetch_blank_curl =3D curl_easy_init();
- if (!fetch_blank_curl)
- die("Failed to initialise the fetch module "
- "(curl_easy_init failed).");
-
-#undef SETOPT
-#define SETOPT(option, value) \
- code =3D curl_easy_setopt(fetch_blank_curl, option, value); \
- if (code !=3D CURLE_OK) \
- goto curl_easy_setopt_failed;
-
- if (verbose_log) {
- SETOPT(CURLOPT_VERBOSE, 1);
- } else {
- SETOPT(CURLOPT_VERBOSE, 0);
- }
- SETOPT(CURLOPT_ERRORBUFFER, fetch_error_buffer);
- if (option_suppress_curl_debug)
- SETOPT(CURLOPT_DEBUGFUNCTION, fetch_curl_ignore);
- SETOPT(CURLOPT_WRITEFUNCTION, fetch_curl_data);
- SETOPT(CURLOPT_HEADERFUNCTION, fetch_curl_header);
- SETOPT(CURLOPT_PROGRESSFUNCTION, fetch_curl_progress);
- SETOPT(CURLOPT_NOPROGRESS, 0);
- SETOPT(CURLOPT_USERAGENT, user_agent_string());
- SETOPT(CURLOPT_ENCODING, "gzip");
- SETOPT(CURLOPT_LOW_SPEED_LIMIT, 1L);
- SETOPT(CURLOPT_LOW_SPEED_TIME, 180L);
- SETOPT(CURLOPT_NOSIGNAL, 1L);
- SETOPT(CURLOPT_CONNECTTIMEOUT, 30L);
-
- if (option_ca_bundle && strcmp(option_ca_bundle, ""))
- SETOPT(CURLOPT_CAINFO, option_ca_bundle);
- if (option_ca_path && strcmp(option_ca_path, ""))
- SETOPT(CURLOPT_CAPATH, option_ca_path);
-
- /* cURL initialised okay, register the fetchers */
-
- data =3D curl_version_info(CURLVERSION_NOW);
-
- for (i =3D 0; data->protocols[i]; i++)
- if (!fetch_add_fetcher(data->protocols[i],
- fetch_curl_initialise,
- fetch_curl_setup,
- fetch_curl_start,
- fetch_curl_abort,
- fetch_curl_free,
- fetch_curl_poll,
- fetch_curl_finalise)) {
- LOG(("Unable to register cURL fetcher for %s", dat=
a->protocols[i]));
- }
- return;
-
-curl_easy_setopt_failed:
- die("Failed to initialise the fetch module "
- "(curl_easy_setopt failed).");
-}
Modified: trunk/netsurf/content/fetchers/fetch_curl.h
URL: http://source.netsurf-browser.org/trunk/netsurf/content/fetchers/fetch=
_curl.h?rev=3D3379&r1=3D3378&r2=3D3379&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurf/content/fetchers/fetch_curl.h (original)
+++ trunk/netsurf/content/fetchers/fetch_curl.h Wed Jul 4 19:05:16 2007
@@ -14,7 +14,7 @@
=
#include <curl/curl.h>
=
-void register_curl_fetchers(void);
+void fetch_curl_register(void);
=
/** Global cURL multi handle. */
extern CURLM *fetch_curl_multi;
16 years, 2 months
r3378 tlsa - in /trunk/netsurftest/other: ./ aligntests/
by netsurf@semichrome.net
Author: tlsa
Date: Mon Jul 2 12:29:48 2007
New Revision: 3378
URL: http://source.netsurf-browser.org?rev=3D3378&view=3Drev
Log:
Add alignment test cases.
Added:
trunk/netsurftest/other/
trunk/netsurftest/other/aligntests/
trunk/netsurftest/other/aligntests/AlignTestResults.txt
trunk/netsurftest/other/aligntests/index.html
trunk/netsurftest/other/aligntests/q0.html
trunk/netsurftest/other/aligntests/q1.html
trunk/netsurftest/other/aligntests/q2.html
trunk/netsurftest/other/aligntests/q3.html
trunk/netsurftest/other/aligntests/q4.html
trunk/netsurftest/other/aligntests/q5.html
trunk/netsurftest/other/aligntests/q6.html
trunk/netsurftest/other/aligntests/q7.html
trunk/netsurftest/other/aligntests/q8.html
trunk/netsurftest/other/aligntests/q9.html
trunk/netsurftest/other/aligntests/qa.html
trunk/netsurftest/other/aligntests/qb.html
trunk/netsurftest/other/aligntests/qc.html
trunk/netsurftest/other/aligntests/qd.html
trunk/netsurftest/other/aligntests/qe.html
trunk/netsurftest/other/aligntests/qf.html
trunk/netsurftest/other/aligntests/qg.html
trunk/netsurftest/other/aligntests/qh.html
trunk/netsurftest/other/aligntests/qi.html
trunk/netsurftest/other/aligntests/qj.html
trunk/netsurftest/other/aligntests/qk.html
trunk/netsurftest/other/aligntests/ql.html
trunk/netsurftest/other/aligntests/qm.html
trunk/netsurftest/other/aligntests/qn.html
trunk/netsurftest/other/aligntests/qo.html
trunk/netsurftest/other/aligntests/qp.html
trunk/netsurftest/other/aligntests/qq.html
trunk/netsurftest/other/aligntests/qr.html
trunk/netsurftest/other/aligntests/qs.html
trunk/netsurftest/other/aligntests/qt.html
trunk/netsurftest/other/aligntests/qu.html
trunk/netsurftest/other/aligntests/qv.html
trunk/netsurftest/other/aligntests/qw.html
trunk/netsurftest/other/aligntests/qx.html
trunk/netsurftest/other/aligntests/qy.html
trunk/netsurftest/other/aligntests/qz.html
trunk/netsurftest/other/aligntests/s0.html
trunk/netsurftest/other/aligntests/s1.html
trunk/netsurftest/other/aligntests/s2.html
trunk/netsurftest/other/aligntests/s3.html
trunk/netsurftest/other/aligntests/s4.html
trunk/netsurftest/other/aligntests/s5.html
trunk/netsurftest/other/aligntests/s6.html
trunk/netsurftest/other/aligntests/s7.html
trunk/netsurftest/other/aligntests/s8.html
trunk/netsurftest/other/aligntests/s9.html
trunk/netsurftest/other/aligntests/sa.html
trunk/netsurftest/other/aligntests/sb.html
trunk/netsurftest/other/aligntests/sc.html
trunk/netsurftest/other/aligntests/sd.html
trunk/netsurftest/other/aligntests/se.html
trunk/netsurftest/other/aligntests/sf.html
trunk/netsurftest/other/aligntests/sg.html
trunk/netsurftest/other/aligntests/sh.html
trunk/netsurftest/other/aligntests/si.html
trunk/netsurftest/other/aligntests/sj.html
trunk/netsurftest/other/aligntests/sk.html
trunk/netsurftest/other/aligntests/sl.html
trunk/netsurftest/other/aligntests/sm.html
trunk/netsurftest/other/aligntests/sn.html
trunk/netsurftest/other/aligntests/so.html
trunk/netsurftest/other/aligntests/sp.html
trunk/netsurftest/other/aligntests/sq.html
trunk/netsurftest/other/aligntests/sr.html
trunk/netsurftest/other/aligntests/ss.html
trunk/netsurftest/other/aligntests/st.html
trunk/netsurftest/other/aligntests/su.html
trunk/netsurftest/other/aligntests/sv.html
trunk/netsurftest/other/aligntests/sw.html
trunk/netsurftest/other/aligntests/sx.html
trunk/netsurftest/other/aligntests/sy.html
trunk/netsurftest/other/aligntests/sz.html
Added: trunk/netsurftest/other/aligntests/AlignTestResults.txt
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/A=
lignTestResults.txt?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/AlignTestResults.txt (added)
+++ trunk/netsurftest/other/aligntests/AlignTestResults.txt Mon Jul 2 12:2=
9:48 2007
@@ -1,0 +1,120 @@
+ALIGNMENT TEST RESULTS
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+In the absence of a summary, skip to the conclusion for the overview.
+
+
+Key:
+
+ + Standards and Quirks modes are tantamount
+ - Standards and Quirks modes exhibit differing behaviour
+
+Note 1: Only test IDs that demonstrate something that couldn't be predicted
+ from preceding test results are commented on.
+Note 2: Where quirks mode layout is the same as standards mode, no comment
+ is made.
+
+
+
+Firefox
+-------
+
+Standards:
+
+1+ CENTER centers a child DIV and the inline contents of that DIV, where no
+ other alignment modifiers exist
+2+ CENTER centers any descendant DIVs and the inline or block level
+ contents of those DIVs, where no other alignment modifiers exist; DIV
+ permits propagation of CENTER behaviour
+3+
+4+ A TABLE child of CENTER is centered and inline contents of the TABLE
+ cells (TD) are left aligned, where no other alignment modifiers exist
+5+ CENTER effect propagation is blocked by a TABLE; inline and block level
+ children of TABLE cells (TD) are left aligned
+6+
+7+
+8+ DIV elements with the ALIGN attribute set block propagation of the
+ effects of CENTER. DIV alignment attributes' effects propagate to
+ descendants, in the absence of other alignment modifiers. DIV alignment
+ affects descendant inline and block level elements
+9+
+a+ TD elements with ALIGN attribute set block propagation of the effects
+ of CENTER. TD alignment attributes' effects propagate to descendants, in
+ the absence of other alignment modifiers. TD alignment affects descenda=
nt
+ inline and block level elements
+b+
+c+
+d+
+e+
+f+
+g+
+h+ CENTER blocks propagation of a TD alignment attribute.
+i+
+j+ CENTER blocks propagation of a DIV alignment attribute.
+k+
+l+
+m+
+n+
+o+
+p+ CENTER propagates through floated elements, irrespective of the float
+ properties' settings
+q+ DIV alignment attributes' effects propagate through floated elements,
+ irrespective of the float properties' settings
+r+
+s+
+t+
+u+
+v+
+w+
+x+
+y+
+z+
+ =
+
+Quirks:
+
+ + [All tests perform as for standards mode]
+
+
+Conclusion (Firefox)
+--------------------
+
+Firefox's behaviour for various types of alignment markup is consistent,
+predictable and follows very simple rules.
+
+CENTER, and DIVs, TDs and THs with an align attribute all behave in the
+same way:
+
+ + Inline and block level elements are effected
+ + All descendants are affected, not just children
+
+The alignment effects of these markup constructs propagate through their
+descendants until another such markup-originating alignment modifier is
+encountered. At this point, further descendants are affected by the
+alignment attribute of the closer ancestor.
+
+Note that the CENTER element behaves exactly like DIV with an ALIGN
+attribute set to "center". This is in agreement with HTML 4.01 spec. which
+describes CENTER as shorthand for DIV with an ALIGN attribute set to
+"center".
+
+Note also that TD without an ALIGN attribute set is treated like TD with an
+ALIGN attribute set to "left". This default implied ALIGN attribute behaves
+precisely like a stated ALIGN attribute; its effects propagate though
+descendants and it blocks the propagation of any markup-originating
+alignment effects of if its ancestors. Similarly, TH is tantamount to TH
+with an ALIGN attribute set to "center".
+
+Internet Explorer
+-----------------
+
+Standards:
+
+ - Behaves in the same way as Firefox, except that table cells without
+ ALIGN attributes set don't block alignment propagation / inheritance.
+ Table cells behave like a DIV with no ALIGN attribute.
+
+Quirks:
+
+ - Behaves in exactly the same way as Firefox.
+
Added: trunk/netsurftest/other/aligntests/index.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/i=
ndex.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/index.html (added)
+++ trunk/netsurftest/other/aligntests/index.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,170 @@
+<html>
+<head><title>Alignment test cases</title></head>
+<body>
+
+<pre style=3D"margin-left: 11em;">
+Tests:
+ =
+ 1 center 2 center 3 center
+ div div div
+ div div
+ div
+ =
+ 4 center 5 center 6 center
+ table table div
+ table table
+ =
+ 7 center 8 center 9 center
+ table div right div
+ div div div right
+ div div
+ =
+ a center b center c center
+ td right td right td right
+ div table td left
+ div div
+ =
+ d center e center f center
+ td right div right div right
+ div left table td left
+ =
+ g center h td right i td right
+ div right center center
+ div left table div
+ div div div
+ =
+ j div right k td right l td right
+ center center div center
+ td left div left div
+ div div
+ =
+ m td right n div right o div right
+ td center div center td center
+ div div div
+ =
+ p center q div right r center
+ float right float left table right
+ div div div
+ div div div
+ =
+ s center t center u center
+ table right table right table right
+ table div left td left
+ =
+ v center w table center x table right
+ table right div right center
+ table left div table
+ =
+ y center z table right td left 0 div center
+ table right td left center div css left
+ div div div
+ div
+ =
+ =
+ =
+Key:
+ =
+ center <center style=3D"border:1px solid red;">
+ =
+ div <div style=3D"width:70%; border:1px solid green;&quo=
t;>
+ =
+ div right <div align=3D"right" style=3D"width:70%; b=
order:1px solid green;">
+ =
+ div left <div align=3D"left" style=3D"width:70%; bo=
rder:1px solid green;">
+ =
+ div center <div align=3D"center" style=3D"width:70%; =
border:1px solid green;">
+ =
+ table <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ =
+ table right <table align=3D"right" style=3D"width:70%;=
">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ =
+ table left <table align=3D"left" style=3D"width:70%;&=
quot;>
+ <tr>
+ <td style=3D"border:1px solid black;">
+ =
+ table center <table align=3D"center" style=3D"width:70%=
;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ =
+ td right <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"right" style=3D"border:1px so=
lid black;">
+ =
+ td left <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px sol=
id black;">
+ =
+ td center <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"center" style=3D"border:1px s=
olid black;">
+ =
+ float right <div style=3D"float:right; width:70%; border:1px sol=
id blue;">
+ =
+ float left <div style=3D"float:left; width:70%; border:1px soli=
d blue;">
+ =
+ table right td left <table align=3D"right" style=3D"wi=
dth:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border=
:1px solid black;">
+ =
+ div css left <div style=3D"text-align:left; margin-left:0;
+ margin-right:auto; width:70%; border:1px solid green=
;">
+ =
+ =
+ =
+Filenames:
+ =
+ [s|q][test id].html
+ =
+ For example
+ =
+ s1.html is test 1 with a doctype forcing standards mode
+ q1.html ia test 1 with no doctype (quirks mode)
+
+</pre>
+
+<table style=3D"position:absolute;left:0;top:0;border-right:4px solid #cfd=
;">
+<tr><th>Standards</th><th>Quirks</th></tr>
+<tr><td><a href=3D"s1.html">test 1</a></td><td><a href=3D"q1.html">test 1<=
/a></td></tr>
+<tr><td><a href=3D"s2.html">test 2</a></td><td><a href=3D"q2.html">test 2<=
/a></td></tr>
+<tr><td><a href=3D"s3.html">test 3</a></td><td><a href=3D"q3.html">test 3<=
/a></td></tr>
+<tr><td><a href=3D"s4.html">test 4</a></td><td><a href=3D"q4.html">test 4<=
/a></td></tr>
+<tr><td><a href=3D"s5.html">test 5</a></td><td><a href=3D"q5.html">test 5<=
/a></td></tr>
+<tr><td><a href=3D"s6.html">test 6</a></td><td><a href=3D"q6.html">test 6<=
/a></td></tr>
+<tr><td><a href=3D"s7.html">test 7</a></td><td><a href=3D"q7.html">test 7<=
/a></td></tr>
+<tr><td><a href=3D"s8.html">test 8</a></td><td><a href=3D"q8.html">test 8<=
/a></td></tr>
+<tr><td><a href=3D"s9.html">test 9</a></td><td><a href=3D"q9.html">test 9<=
/a></td></tr>
+<tr><td><a href=3D"sa.html">test a</a></td><td><a href=3D"qa.html">test a<=
/a></td></tr>
+<tr><td><a href=3D"sb.html">test b</a></td><td><a href=3D"qb.html">test b<=
/a></td></tr>
+<tr><td><a href=3D"sc.html">test c</a></td><td><a href=3D"qc.html">test c<=
/a></td></tr>
+<tr><td><a href=3D"sd.html">test d</a></td><td><a href=3D"qd.html">test d<=
/a></td></tr>
+<tr><td><a href=3D"se.html">test e</a></td><td><a href=3D"qe.html">test e<=
/a></td></tr>
+<tr><td><a href=3D"sf.html">test f</a></td><td><a href=3D"qf.html">test f<=
/a></td></tr>
+<tr><td><a href=3D"sg.html">test g</a></td><td><a href=3D"qg.html">test g<=
/a></td></tr>
+<tr><td><a href=3D"sh.html">test h</a></td><td><a href=3D"qh.html">test h<=
/a></td></tr>
+<tr><td><a href=3D"si.html">test i</a></td><td><a href=3D"qi.html">test i<=
/a></td></tr>
+<tr><td><a href=3D"sj.html">test j</a></td><td><a href=3D"qj.html">test j<=
/a></td></tr>
+<tr><td><a href=3D"sk.html">test k</a></td><td><a href=3D"qk.html">test k<=
/a></td></tr>
+<tr><td><a href=3D"sl.html">test l</a></td><td><a href=3D"ql.html">test l<=
/a></td></tr>
+<tr><td><a href=3D"sm.html">test m</a></td><td><a href=3D"qm.html">test m<=
/a></td></tr>
+<tr><td><a href=3D"sn.html">test n</a></td><td><a href=3D"qn.html">test n<=
/a></td></tr>
+<tr><td><a href=3D"so.html">test o</a></td><td><a href=3D"qo.html">test o<=
/a></td></tr>
+<tr><td><a href=3D"sp.html">test p</a></td><td><a href=3D"qp.html">test p<=
/a></td></tr>
+<tr><td><a href=3D"sq.html">test q</a></td><td><a href=3D"qq.html">test q<=
/a></td></tr>
+<tr><td><a href=3D"sr.html">test r</a></td><td><a href=3D"qr.html">test r<=
/a></td></tr>
+<tr><td><a href=3D"ss.html">test s</a></td><td><a href=3D"qs.html">test s<=
/a></td></tr>
+<tr><td><a href=3D"st.html">test t</a></td><td><a href=3D"qt.html">test t<=
/a></td></tr>
+<tr><td><a href=3D"su.html">test u</a></td><td><a href=3D"qu.html">test u<=
/a></td></tr>
+<tr><td><a href=3D"sv.html">test v</a></td><td><a href=3D"qv.html">test v<=
/a></td></tr>
+<tr><td><a href=3D"sw.html">test w</a></td><td><a href=3D"qw.html">test w<=
/a></td></tr>
+<tr><td><a href=3D"sx.html">test x</a></td><td><a href=3D"qx.html">test x<=
/a></td></tr>
+<tr><td><a href=3D"sy.html">test y</a></td><td><a href=3D"qy.html">test y<=
/a></td></tr>
+<tr><td><a href=3D"sz.html">test z</a></td><td><a href=3D"qz.html">test z<=
/a></td></tr>
+<tr><td><a href=3D"s0.html">test zero</a></td><td><a href=3D"q0.html"=
>test zero</a></td></tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q0.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
0.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q0.html (added)
+++ trunk/netsurftest/other/aligntests/q0.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,19 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<div align=3D"center" style=3D"width:70%; border:1px solid green;">
+ div center
+ <div style=3D"text-align:left; margin-left:0; margin-right:auto; width:7=
0%; border:1px solid green;">
+ div css left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q1.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
1.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q1.html (added)
+++ trunk/netsurftest/other/aligntests/q1.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,13 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q2.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
2.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q2.html (added)
+++ trunk/netsurftest/other/aligntests/q2.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,16 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q3.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
3.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q3.html (added)
+++ trunk/netsurftest/other/aligntests/q3.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,19 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q4.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
4.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q4.html (added)
+++ trunk/netsurftest/other/aligntests/q4.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,17 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q5.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
5.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q5.html (added)
+++ trunk/netsurftest/other/aligntests/q5.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,24 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q6.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
6.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q6.html (added)
+++ trunk/netsurftest/other/aligntests/q6.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q7.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
7.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q7.html (added)
+++ trunk/netsurftest/other/aligntests/q7.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q8.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
8.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q8.html (added)
+++ trunk/netsurftest/other/aligntests/q8.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,19 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/q9.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
9.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/q9.html (added)
+++ trunk/netsurftest/other/aligntests/q9.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,19 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qa.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
a.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qa.html (added)
+++ trunk/netsurftest/other/aligntests/qa.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qb.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
b.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qb.html (added)
+++ trunk/netsurftest/other/aligntests/qb.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,27 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qc.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
c.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qc.html (added)
+++ trunk/netsurftest/other/aligntests/qc.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,27 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ td left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qd.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
d.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qd.html (added)
+++ trunk/netsurftest/other/aligntests/qd.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <div align=3D"left" style=3D"width:70%; border:1px solid green;">
+ div left
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qe.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
e.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qe.html (added)
+++ trunk/netsurftest/other/aligntests/qe.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qf.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
f.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qf.html (added)
+++ trunk/netsurftest/other/aligntests/qf.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ td left
+ </td>
+ </tr>
+ </table>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qg.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
g.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qg.html (added)
+++ trunk/netsurftest/other/aligntests/qg.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,19 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div align=3D"left" style=3D"width:70%; border:1px solid green;">
+ div left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qh.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
h.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qh.html (added)
+++ trunk/netsurftest/other/aligntests/qh.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,27 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+ </center>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qi.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
i.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qi.html (added)
+++ trunk/netsurftest/other/aligntests/qi.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,23 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </center>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qj.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
j.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qj.html (added)
+++ trunk/netsurftest/other/aligntests/qj.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,23 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ td left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+ </center>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qk.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
k.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qk.html (added)
+++ trunk/netsurftest/other/aligntests/qk.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,23 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <center style=3D"border:1px solid red;">
+ center
+ <div align=3D"left" style=3D"width:70%; border:1px solid green;">
+ div left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </center>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/ql.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
l.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/ql.html (added)
+++ trunk/netsurftest/other/aligntests/ql.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <div align=3D"center" style=3D"width:70%; border:1px solid green;">
+ div center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qm.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
m.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qm.html (added)
+++ trunk/netsurftest/other/aligntests/qm.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,24 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"center" style=3D"border:1px solid black;">
+ td center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qn.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
n.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qn.html (added)
+++ trunk/netsurftest/other/aligntests/qn.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,16 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div align=3D"center" style=3D"width:70%; border:1px solid green;">
+ div center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qo.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
o.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qo.html (added)
+++ trunk/netsurftest/other/aligntests/qo.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"center" style=3D"border:1px solid black;">
+ td center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qp.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
p.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qp.html (added)
+++ trunk/netsurftest/other/aligntests/qp.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,19 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"float:right; width:70%; border:1px solid blue;">
+ float right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qq.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
q.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qq.html (added)
+++ trunk/netsurftest/other/aligntests/qq.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,19 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div style=3D"float:left; width:70%; border:1px solid blue;">
+ float left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qr.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
r.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qr.html (added)
+++ trunk/netsurftest/other/aligntests/qr.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,23 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qs.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
s.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qs.html (added)
+++ trunk/netsurftest/other/aligntests/qs.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,24 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qt.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
t.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qt.html (added)
+++ trunk/netsurftest/other/aligntests/qt.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <div align=3D"left" style=3D"width:70%; border:1px solid green;">
+ div left
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qu.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
u.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qu.html (added)
+++ trunk/netsurftest/other/aligntests/qu.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,24 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ td left
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qv.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
v.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qv.html (added)
+++ trunk/netsurftest/other/aligntests/qv.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,24 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <table align=3D"left" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table teft
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qw.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
w.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qw.html (added)
+++ trunk/netsurftest/other/aligntests/qw.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<table align=3D"center" style=3D"width:70%;">
+<tr>
+<td style=3D"border:1px solid black;">
+ table center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+</td>
+</tr>
+</table> =
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qx.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
x.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qx.html (added)
+++ trunk/netsurftest/other/aligntests/qx.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,24 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<table align=3D"right" style=3D"width:70%;">
+<tr>
+<td style=3D"border:1px solid black;">
+ table right
+ <center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </center>
+</td>
+</tr>
+</table> =
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qy.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
y.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qy.html (added)
+++ trunk/netsurftest/other/aligntests/qy.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ table right td left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/qz.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/q=
z.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/qz.html (added)
+++ trunk/netsurftest/other/aligntests/qz.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,20 @@
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<table align=3D"right" style=3D"width:70%;">
+<tr>
+<td align=3D"left" style=3D"border:1px solid black;">
+ table right td left
+ <center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </center>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s0.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
0.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s0.html (added)
+++ trunk/netsurftest/other/aligntests/s0.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<div align=3D"center" style=3D"width:70%; border:1px solid green;">
+ div center
+ <div style=3D"text-align:left; margin-left:0; margin-right:auto; width:7=
0%; border:1px solid green;">
+ div css left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s1.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
1.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s1.html (added)
+++ trunk/netsurftest/other/aligntests/s1.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s2.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
2.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s2.html (added)
+++ trunk/netsurftest/other/aligntests/s2.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s3.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
3.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s3.html (added)
+++ trunk/netsurftest/other/aligntests/s3.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s4.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
4.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s4.html (added)
+++ trunk/netsurftest/other/aligntests/s4.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s5.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
5.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s5.html (added)
+++ trunk/netsurftest/other/aligntests/s5.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s6.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
6.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s6.html (added)
+++ trunk/netsurftest/other/aligntests/s6.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s7.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
7.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s7.html (added)
+++ trunk/netsurftest/other/aligntests/s7.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s8.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
8.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s8.html (added)
+++ trunk/netsurftest/other/aligntests/s8.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/s9.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
9.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/s9.html (added)
+++ trunk/netsurftest/other/aligntests/s9.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sa.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
a.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sa.html (added)
+++ trunk/netsurftest/other/aligntests/sa.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (quirks)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sb.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
b.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sb.html (added)
+++ trunk/netsurftest/other/aligntests/sb.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sc.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
c.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sc.html (added)
+++ trunk/netsurftest/other/aligntests/sc.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ td left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sd.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
d.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sd.html (added)
+++ trunk/netsurftest/other/aligntests/sd.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <div align=3D"left" style=3D"width:70%; border:1px solid green;">
+ div left
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/se.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
e.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/se.html (added)
+++ trunk/netsurftest/other/aligntests/se.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sf.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
f.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sf.html (added)
+++ trunk/netsurftest/other/aligntests/sf.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ td left
+ </td>
+ </tr>
+ </table>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sg.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
g.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sg.html (added)
+++ trunk/netsurftest/other/aligntests/sg.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div align=3D"left" style=3D"width:70%; border:1px solid green;">
+ div left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sh.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
h.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sh.html (added)
+++ trunk/netsurftest/other/aligntests/sh.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+ </center>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/si.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
i.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/si.html (added)
+++ trunk/netsurftest/other/aligntests/si.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </center>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sj.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
j.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sj.html (added)
+++ trunk/netsurftest/other/aligntests/sj.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ td left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+ </center>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sk.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
k.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sk.html (added)
+++ trunk/netsurftest/other/aligntests/sk.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <center style=3D"border:1px solid red;">
+ center
+ <div align=3D"left" style=3D"width:70%; border:1px solid green;">
+ div left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </center>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sl.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
l.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sl.html (added)
+++ trunk/netsurftest/other/aligntests/sl.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <div align=3D"center" style=3D"width:70%; border:1px solid green;">
+ div center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sm.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
m.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sm.html (added)
+++ trunk/netsurftest/other/aligntests/sm.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<table style=3D"width:70%;">
+<tr>
+<td align=3D"right" style=3D"border:1px solid black;">
+ td right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"center" style=3D"border:1px solid black;">
+ td center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sn.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
n.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sn.html (added)
+++ trunk/netsurftest/other/aligntests/sn.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div align=3D"center" style=3D"width:70%; border:1px solid green;">
+ div center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/so.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
o.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/so.html (added)
+++ trunk/netsurftest/other/aligntests/so.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"center" style=3D"border:1px solid black;">
+ td center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sp.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
p.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sp.html (added)
+++ trunk/netsurftest/other/aligntests/sp.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <div style=3D"float:right; width:70%; border:1px solid blue;">
+ float right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sq.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
q.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sq.html (added)
+++ trunk/netsurftest/other/aligntests/sq.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div style=3D"float:left; width:70%; border:1px solid blue;">
+ float left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </div>
+</div>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sr.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
r.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sr.html (added)
+++ trunk/netsurftest/other/aligntests/sr.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/ss.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
s.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/ss.html (added)
+++ trunk/netsurftest/other/aligntests/ss.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/st.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
t.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/st.html (added)
+++ trunk/netsurftest/other/aligntests/st.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <div align=3D"left" style=3D"width:70%; border:1px solid green;">
+ div left
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/su.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
u.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/su.html (added)
+++ trunk/netsurftest/other/aligntests/su.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <table style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ td left
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sv.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
v.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sv.html (added)
+++ trunk/netsurftest/other/aligntests/sv.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table right
+ <table align=3D"left" style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table teft
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sw.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
w.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sw.html (added)
+++ trunk/netsurftest/other/aligntests/sw.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<table align=3D"center" style=3D"width:70%;">
+<tr>
+<td style=3D"border:1px solid black;">
+ table center
+ <div align=3D"right" style=3D"width:70%; border:1px solid green;">
+ div right
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </div>
+</td>
+</tr>
+</table> =
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sx.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
x.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sx.html (added)
+++ trunk/netsurftest/other/aligntests/sx.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<table align=3D"right" style=3D"width:70%;">
+<tr>
+<td style=3D"border:1px solid black;">
+ table right
+ <center style=3D"border:1px solid red;">
+ center
+ <table style=3D"width:70%;">
+ <tr>
+ <td style=3D"border:1px solid black;">
+ table
+ </td>
+ </tr>
+ </table>
+ </center>
+</td>
+</tr>
+</table> =
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sy.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
y.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sy.html (added)
+++ trunk/netsurftest/other/aligntests/sy.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<center style=3D"border:1px solid red;">
+ center
+ <table align=3D"right" style=3D"width:70%;">
+ <tr>
+ <td align=3D"left" style=3D"border:1px solid black;">
+ table right td left
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </td>
+ </tr>
+ </table>
+</center>
+
+</body>
+</html>
Added: trunk/netsurftest/other/aligntests/sz.html
URL: http://source.netsurf-browser.org/trunk/netsurftest/other/aligntests/s=
z.html?rev=3D3378&view=3Dauto
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/netsurftest/other/aligntests/sz.html (added)
+++ trunk/netsurftest/other/aligntests/sz.html Mon Jul 2 12:29:48 2007
@@ -1,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head><title>Alignment test case (standards)</title></head>
+<body>
+
+<table align=3D"right" style=3D"width:70%;">
+<tr>
+<td align=3D"left" style=3D"border:1px solid black;">
+ table right td left
+ <center style=3D"border:1px solid red;">
+ center
+ <div style=3D"width:70%; border:1px solid green;">
+ div
+ </div>
+ </center>
+</td>
+</tr>
+</table>
+
+</body>
+</html>
16 years, 2 months