Chromium Code Reviews| Index: content/public/common/resource_request_body.h |
| diff --git a/content/public/common/resource_request_body.h b/content/public/common/resource_request_body.h |
| index 59f654ed8922cfcab63e6c288873430c50f17cdc..78af0721190001a3ff13170e80d61f42e4f8e515 100644 |
| --- a/content/public/common/resource_request_body.h |
| +++ b/content/public/common/resource_request_body.h |
| @@ -7,27 +7,55 @@ |
| #include <stdint.h> |
| +#include <string> |
| #include <vector> |
| #include "base/macros.h" |
| #include "base/memory/ref_counted.h" |
| +#include "build/build_config.h" |
| #include "content/common/content_export.h" |
| +#if defined(OS_ANDROID) |
| +#include <jni.h> |
| +#include "base/android/scoped_java_ref.h" |
| +#endif |
| + |
| namespace content { |
| // ResourceRequestBody represents body (i.e. upload data) of a HTTP request. |
| // |
| // This class is intentionally opaque: |
| -// - Embedders cannot inspect the payload of ResourceRequestBody. Only the |
| -// //content layer can decompose ResourceRequestBody into references to file |
| -// ranges, byte vectors, blob uris, etc. |
| -// - Embedders can get instances of ResourceRequestBody only by receiving an |
| -// instance created inside //content layer (e.g. receiving it via |
| -// content::OpenURLParams). |
| -// - Embedders typically end up passing ResourceRequestBody back into the |
| -// //content layer via content::NavigationController::LoadUrlParams. |
| +// *) Embedders cannot inspect the payload of ResourceRequestBody. Only the |
| +// //content layer can decompose ResourceRequestBody into references to file |
| +// ranges, byte vectors, blob uris, etc. |
| +// *) Embedders can get instances of ResourceRequestBody only by |
| +// - receiving an instance created inside //content layer (e.g. receiving it |
| +// via content::OpenURLParams), |
| +// - calling CreateFromBytes with a vector of bytes (e.g. to support |
| +// Android's WebView::postUrl API and to support test code). |
| +// *) Embedders typically end up passing ResourceRequestBody back into the |
| +// //content layer via content::NavigationController::LoadUrlParams. |
| class CONTENT_EXPORT ResourceRequestBody |
| : public base::RefCountedThreadSafe<ResourceRequestBody> { |
| + public: |
| + // Creates ResourceRequestBody that holds a copy of |bytes|. |
| + static scoped_refptr<ResourceRequestBody> CreateFromBytes(const char* bytes, |
|
Charlie Reis
2016/06/09 22:38:16
You mentioned that this should only be used for An
Łukasz Anforowicz
2016/06/10 19:20:50
I found out that I was wrong about that - there is
Charlie Reis
2016/06/10 20:59:28
As Daniel points out, this is the "Search Google f
Łukasz Anforowicz
2016/06/13 18:01:11
Oh, ok. It seems to continue to work in the priva
|
| + size_t length); |
| + static scoped_refptr<ResourceRequestBody> CreateFromBytes( |
| + const std::string& bytes); |
|
Charlie Reis
2016/06/09 22:38:16
Maybe we can get by with just the first version of
Łukasz Anforowicz
2016/06/10 19:20:50
Done.
|
| + |
| +#if defined(OS_ANDROID) |
| + // Returns a org.chromium.content_public.common.ResourceRequestBody Java |
| + // object that wraps a ref-counted pointer to the |resource_request_body|. |
| + base::android::ScopedJavaLocalRef<jobject> ToJavaObject(JNIEnv* env); |
| + |
| + // Extracts and returns a C++ object out of Java's |
| + // org.chromium.content_public.common.ResourceRequestBody. |
| + static scoped_refptr<ResourceRequestBody> FromJavaObject( |
| + JNIEnv* env, |
| + const base::android::JavaParamRef<jobject>& java_object); |
| +#endif |
| + |
| protected: |
| ResourceRequestBody(); |
| virtual ~ResourceRequestBody(); |