DonationCoder.com forum
 
Read-only archive. This is a static copy of the DonationCoder.com forum. Reading and searching work as before; logging in, posting and private messages do not.
Archive of 2026-10-21 · About this archive · Main site

Author Topic: ChameleonNavigator  (Read 11,040 times)

sembel

  • Honorary Member
  • Joined in 2006
  • **
  • Posts: 9
ChameleonNavigator
« on: June 09, 2006, 04:18 AM »
Hello everybody!

I did a small freeware utility for the web content testing depended on user settings (browser name, accepted languages and referrer).
The application uses the IE engine, but on the server it will be identified as Netscape, Opera, Firefox, Google bot or anything you want.
If the server sends different content, you will see it. Also you can easy check content depended on user language or referrer.

Some features like Javascript, ActiveX, Images etc. you can quick enable/disable.

For me it works fine, but still beta, because it's without help file and maybe with some bugs ;)



The program is without installation.

ChameleonNavigator.exe: ~760 Kb
http://www.sembel.net/download/ChameleonNavigator.exe

Flash presentation: ~595 Kb
http://www.sembel.net/temp/ChameleonNavigatorHelp.chm


Any comment will be appreciated!

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,931
    • Gathering Badge
    • Plugin Coding Medal
    • Participated in NANY Challenge Seventeen Times
    • Cody Award
    • Coding Snacks
    • Volunteers/Staff
Re: ChameleonNavigator
« Reply #1 on: June 09, 2006, 04:43 AM »
very nice idea!!!  :up: :up: :up:

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,931
    • Gathering Badge
    • Plugin Coding Medal
    • Participated in NANY Challenge Seventeen Times
    • Cody Award
    • Coding Snacks
    • Volunteers/Staff
Re: ChameleonNavigator
« Reply #2 on: June 09, 2006, 04:44 AM »
option to disable cookies might be nice to add as well.

sembel

  • Honorary Member
  • Joined in 2006
  • **
  • Posts: 9
Re: ChameleonNavigator
« Reply #3 on: June 09, 2006, 01:36 PM »
thank you, mouser!
you are right, the cookie option would be useful too.

Jammo the OrganizedFellow

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 212
Re: ChameleonNavigator
« Reply #4 on: June 15, 2006, 03:52 PM »
The other day, I completely rewrote a few pages of my site, which uses ExpressionEngine.

I did all my testing in FireFox 1.5.0.4.
I totally failed to make sure my pages rendered fine in MSIE.
So this utility will allow me to make sure there are no further mishaps. :)

Thank You!  :Thmbsup:

*EDIT*
Installed. Ran. Very useful!
Why not have latest engine for FireFox?
This way, testing doesn't have to be switched between two apps? :)
As an aspiring web developer/designer, it is a constant struggle to cope with my ADHD + Hypomania/Bipolar Disorder.

The slow growth of my web dev projects is eclipsed by my patience, understanding and desire to learn AS MUCH AS POSSIBLE as I slowly progress.

X_____jamjammo_____
« Last Edit: June 15, 2006, 03:57 PM by jammo »

sembel

  • Honorary Member
  • Joined in 2006
  • **
  • Posts: 9
Re: ChameleonNavigator
« Reply #5 on: June 15, 2006, 04:08 PM »
thanks jammo!

sembel

  • Honorary Member
  • Joined in 2006
  • **
  • Posts: 9
Re: ChameleonNavigator
« Reply #6 on: June 15, 2006, 04:19 PM »
Because my aim was emulation (browser name, accepted languages and referrer) for the server and I didn't think about client rendering. Also with IE engine much easier ;)

quantumrider

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 18
Re: ChameleonNavigator
« Reply #7 on: June 16, 2006, 07:27 AM »
Is t written it in c++? If so, any chance you could post the information on how the user agent string can be changed while using IE engine?

I need that badly!


-ark

sembel

  • Honorary Member
  • Joined in 2006
  • **
  • Posts: 9
Re: ChameleonNavigator
« Reply #8 on: June 16, 2006, 07:44 AM »
I'm using BeforeNavigate2. I hope it helps you:

Code: (cpp)
void CMyView::BeforeNavigate2(LPDISPATCH pDisp, VARIANT* URL,
		VARIANT* Flags, VARIANT* TargetFrameName,
		VARIANT* PostData, VARIANT* Headers, VARIANT_BOOL* Cancel) 
{
	IWebBrowser2*   pWB = NULL;
	HRESULT hr = pDisp->QueryInterface( IID_IWebBrowser2, (void**)&pWB );
	if(SUCCEEDED(hr))
	{
		CString csHeaders(V_BSTR(Headers));
		CString csURL(V_BSTR(URL));
		if(csHeaders.Find("User-Agent")==-1 && csURL.Find("about:blank")==-1)
		{
			pWB->Stop();

			CString strHeader = "" ; 
			strHeader += "User-Agent:";  
			strHeader += "HERE MY NAME";  
			strHeader += "\r\n";  
			COleVariant vHeaders(_T(strHeader), VT_BSTR );
			pWB->Navigate2(URL, Flags, NULL, PostData, vHeaders);  
		}
		else
		{
			CHtmlView::BeforeNavigate2(pDisp, URL, Flags, TargetFrameName, PostData, Headers, Cancel);	
		}
		pWB->Release();
	}
}

Original address: https://www.donationcoder.com/forum/index.php?topic=3962.0