Hi,
I am trying to add a custom scheme to the Chromium browser. I am
trying to write a scheme that will transparently redirect requests to
another URL.
For some reason, however, my custom scheme does not appear to get
recognized. Could somebody tell me what I am doing wrong?
For the time being I have added the following code to the
"chrome_exe_main.cc" source.
//
// Added above the main Windows function.
//
#include "net/url_request/url_request.h"
#include "net/url_request/url_request_http_job.h"
static const char kCustomURLScheme[] = "my-scheme";
class URLRequestCustomJob : public URLRequestJob {
public:
static URLRequestJob* Factory(URLRequest* request, const
std::string& scheme) {
DCHECK(scheme == "my-scheme");
// Redirect response to a local network resource.
std::string& requestPath = request->url().PathForRequest().replace
(0, 10, "http://192.168.1.4:8080");
// I tried using the following line, but it turns out that the
"Redirect" function is protected.
//request->Redirect(GURL(requestPath), request->status().status());
// So instead I am attempting to create a new request.
request = new URLRequest(GURL(requestPath), request->delegate());
// Proceed with regular HTTP scheme factory.
return URLRequestHttpJob::Factory(request, "http");
}
};
//
// Added above "#if defined(GOOGLE_CHROME_BUILD)" inside Windows main
function.
//
// Register custom scheme:
url_util::AddStandardScheme(kCustomURLScheme);
URLRequest::RegisterProtocolFactory(kCustomURLScheme,
&URLRequestCustomJob::Factory);
Many thanks,
Lea Hayes
--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: [email protected]
View archives, change email options, or unsubscribe:
http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---