2 * Idea is to serve the files from the file system, so no need to setup apache etc...
3 * This should work for the static content like css / javascript etc.. but
4 * will cause issues with 'dynamic' xhr files (eg. the php stuff)
6 * the idea is nicked from geary.
10 public class FakeServer : Object
14 public FakeServer(WebKit.WebView wkview)
22 //this.view.resource_load_started.connect(on_resource_request_starting);
23 //this.view.navigation_policy_decision_requested.connect(on_navigation_policy_decision_requested);
24 //this.view.new_window_policy_decision_requested.connect(on_navigation_policy_decision_requested);
27 this.view.get_context().register_uri_scheme("xhttp", serve);
31 private bool on_navigation_policy_decision_requested(
32 WebKit.WebFrame frame,
33 WebKit.NetworkRequest request,
34 WebKit.WebNavigationAction navigation_action,
35 WebKit.WebPolicyDecision policy_decision
37 policy_decision.ignore();
39 // not sure if we should allow navigations...
43 private bool on_policy_decision(WebKit.PolicyDecision decision, WebKit.PolicyDecisionType type)
45 if ((type == WebKit.PolicyDecisionType.RESPONSE) {
51 private void on_resource_request_starting(
52 WebKit.WebResource resource,
53 WebKit.URIRequest request) {
54 print("REQUEST-A : %s\n",request.get_uri());
55 if (resource == null) {
57 // A request that was previously approved resulted in a redirect.
61 string? uri = request.get_uri();
66 print("REQUEST : %s\n",uri);
67 if (Regex.match_simple ("\\.php", uri)) {
71 print("CHANGE TO : x%s\n",uri);
72 request.set_uri("x"+ uri);
75 public void serve(WebKit.URISchemeRequest request)
77 // request is URISchemeRequest
79 print(request.get_path());
81 var file = File.new_for_path ("/home/alan/gitlive/" + request.get_path());
82 var stream = file.read();
83 var info = file.query_info(
85 FileQueryInfoFlags.NONE
88 request.finish ( stream, info.get_size(), info.get_content_type());