android_protocol_handler.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe// Use of this source code is governed by a BSD-style license that can be
3ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe// found in the LICENSE file.
4ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe
5ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe#ifndef ANDROID_WEBVIEW_NATIVE_ANDROID_PROTOCOL_HANDLER_H_
6ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe#define ANDROID_WEBVIEW_NATIVE_ANDROID_PROTOCOL_HANDLER_H_
7ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe
8ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe#include "base/android/jni_android.h"
932bbd3ab7846a8c140fda5c83d95c21c447c844cJens Axboe#include "base/memory/scoped_ptr.h"
10ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe#include "net/url_request/url_request_job_factory.h"
11ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe
12ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboenamespace net {
13ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboeclass URLRequestContext;
14ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe}  // namespace net
15ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe
16ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboenamespace android_webview {
17ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe
18ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe// These method register support for Android WebView-specific protocol schemes:
19ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe//
20ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe//  - "content:" scheme is used for accessing data from Android content
21a7448122c349bd3689f808e87680e1d3c30ec85cJens Axboe//    providers, see http://developer.android.com/guide/topics/providers/
22ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe//      content-provider-basics.html#ContentURIs
23ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe//
24ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboescoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
25a7448122c349bd3689f808e87680e1d3c30ec85cJens Axboe    CreateContentSchemeProtocolHandler();
2632bbd3ab7846a8c140fda5c83d95c21c447c844cJens Axboe
27a7448122c349bd3689f808e87680e1d3c30ec85cJens Axboe//  - "file:" scheme extension for accessing application assets and resources
28ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe//    (file:///android_asset/ and file:///android_res/), see
29a7448122c349bd3689f808e87680e1d3c30ec85cJens Axboe//    http://developer.android.com/reference/android/webkit/
30a7448122c349bd3689f808e87680e1d3c30ec85cJens Axboe//      WebSettings.html#setAllowFileAccess(boolean)
31ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboescoped_ptr<net::URLRequestJobFactory::ProtocolHandler>
32d474cbc9ba33448848b50cc697622a402e91e33eAlex Pyrgiotis    CreateAssetFileProtocolHandler();
33ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe
3432bbd3ab7846a8c140fda5c83d95c21c447c844cJens Axboebool RegisterAndroidProtocolHandler(JNIEnv* env);
35a7448122c349bd3689f808e87680e1d3c30ec85cJens Axboe
36ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe}  // namespace android_webview
37ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe
38ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe#endif  // ANDROID_WEBVIEW_NATIVE_ANDROID_PROTOCOL_HANDLER_H_
39ad1f90aa84ba96916d02043958ee416a499f3f25Jens Axboe