This checkin adds request header sniffing. Not sure how useful this is,

but I wanted it for completeness with respect to response header
sniffing.

M webclient/src_moz/EmbedProgress.cpp

- visit request headers on startUrlLoad.

M webclient/test/automated/src/classes/org/mozilla/webclient/DocumentLoadListenerTest.java
M webclient/test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java

- exercise new code.


git-svn-id: svn://10.0.0.236/trunk@164074 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
edburns%acm.org
2004-10-20 02:50:44 +00:00
parent c6c0357163
commit baa0477998
3 changed files with 52 additions and 5 deletions

View File

@@ -164,6 +164,14 @@ EmbedProgress::OnStateChange(nsIWebProgress *aWebProgress,
if ((aStateFlags & STATE_START) && (aStateFlags & STATE_IS_REQUEST)) {
PR_LOG(prLogModuleInfo, PR_LOG_DEBUG,
("EmbedProgress::OnStateChange: START_URL_LOAD\n"));
if (channel && mCapturePageInfo) {
HttpHeaderVisitorImpl *visitor =
new HttpHeaderVisitorImpl(env,
properties, (jobject)
&(mOwner->GetWrapperFactory()->shareContext));
channel->VisitRequestHeaders(visitor);
delete visitor;
}
util_SendEventToJava(nsnull,
mEventRegistration,

View File

@@ -1,5 +1,5 @@
/*
* $Id: DocumentLoadListenerTest.java,v 1.1 2004-09-09 20:17:17 edburns%acm.org Exp $
* $Id: DocumentLoadListenerTest.java,v 1.2 2004-10-20 02:50:44 edburns%acm.org Exp $
*/
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
@@ -164,21 +164,48 @@ public class DocumentLoadListenerTest extends WebclientTestCase {
eventRegistration.addDocumentLoadListener(listener = new PageInfoListener() {
public void eventDispatched(WebclientEvent event) {
Map map = null;
Iterator iter = null;
if (event instanceof DocumentLoadEvent) {
switch ((int) event.getType()) {
case ((int) DocumentLoadEvent.END_URL_LOAD_EVENT_MASK):
case ((int) DocumentLoadEvent.START_URL_LOAD_EVENT_MASK):
assertNotNull(event.getEventData());
assertTrue(event.getEventData() instanceof Map);
Map map = (Map) event.getEventData();
map = (Map) event.getEventData();
assertEquals(url, map.get("URI"));
assertNotNull(map.get("headers"));
assertTrue(map.get("headers") instanceof Map);
Iterator iter = (map = (Map) map.get("headers")).keySet().iterator();
iter = (map = (Map) map.get("headers")).keySet().iterator();
boolean hadCorrectUserAgentHeader = false;
while (iter.hasNext()) {
String curName = iter.next().toString();
if (curName.equals("Host")) {
if (-1 != map.get(curName).toString().indexOf("localhost")) {
hadCorrectUserAgentHeader = true;
}
}
System.out.println("\t" + curName +
": " +
map.get(curName));
}
assertTrue(hadCorrectUserAgentHeader);
break;
case ((int) DocumentLoadEvent.END_URL_LOAD_EVENT_MASK):
assertNotNull(event.getEventData());
assertTrue(event.getEventData() instanceof Map);
map = (Map) event.getEventData();
assertEquals(url, map.get("URI"));
assertNotNull(map.get("headers"));
assertTrue(map.get("headers") instanceof Map);
iter = (map = (Map) map.get("headers")).keySet().iterator();
boolean hadCorrectServerHeader = false;
while (iter.hasNext()) {
String curName = iter.next().toString();
if (curName.equals("Server")) {
hadCorrectServerHeader = true;
if (-1 != map.get(curName).toString().indexOf("THTTPD")) {
hadCorrectServerHeader = true;
}
}
System.out.println("\t" + curName +
": " +

View File

@@ -223,6 +223,18 @@ public class TestBrowser extends JPanel {
Map map = (Map) event.getEventData();
if (event instanceof DocumentLoadEvent) {
switch ((int) event.getType()) {
case ((int) DocumentLoadEvent.START_URL_LOAD_EVENT_MASK):
if (map.get("headers") instanceof Map) {
Iterator iter = (map = (Map) map.get("headers")).keySet().iterator();
while (iter.hasNext()) {
String curName = iter.next().toString();
System.out.println("\t" + curName +
": " +
map.get(curName));
}
}
break;
case ((int) DocumentLoadEvent.START_DOCUMENT_LOAD_EVENT_MASK):
updateStatusInfo("Loading started.");
break;