Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(441)

Side by Side Diff: webkit/glue/resource_loader_bridge.h

Issue 10834289: Split net::UploadData into two: for IPC and for upload handling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase + moved ResolveBlobRef from webkit_blob to webkit_glue Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/blob/blob_storage_controller_unittest.cc ('k') | webkit/glue/resource_request_body.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // The intent of this file is to provide a type-neutral abstraction between 5 // The intent of this file is to provide a type-neutral abstraction between
6 // Chrome and WebKit for resource loading. This pure-virtual interface is 6 // Chrome and WebKit for resource loading. This pure-virtual interface is
7 // implemented by the embedder. 7 // implemented by the embedder.
8 // 8 //
9 // One of these objects will be created by WebKit for each request. WebKit 9 // One of these objects will be created by WebKit for each request. WebKit
10 // will own the pointer to the bridge, and will delete it when the request is 10 // will own the pointer to the bridge, and will delete it when the request is
(...skipping 23 matching lines...) Expand all
34 #include "third_party/WebKit/Source/Platform/chromium/public/WebReferrerPolicy.h " 34 #include "third_party/WebKit/Source/Platform/chromium/public/WebReferrerPolicy.h "
35 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLReques t.h" 35 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLReques t.h"
36 #include "webkit/glue/resource_type.h" 36 #include "webkit/glue/resource_type.h"
37 #include "webkit/glue/webkit_glue_export.h" 37 #include "webkit/glue/webkit_glue_export.h"
38 38
39 namespace net { 39 namespace net {
40 class HttpResponseHeaders; 40 class HttpResponseHeaders;
41 } 41 }
42 42
43 namespace webkit_glue { 43 namespace webkit_glue {
44 class ResourceRequestBody;
44 45
45 // Structure containing timing information for the request. It addresses 46 // Structure containing timing information for the request. It addresses
46 // http://groups.google.com/group/http-archive-specification/web/har-1-1-spec 47 // http://groups.google.com/group/http-archive-specification/web/har-1-1-spec
47 // and http://dev.w3.org/2006/webapi/WebTiming/ needs. 48 // and http://dev.w3.org/2006/webapi/WebTiming/ needs.
48 // 49 //
49 // All the values for starts and ends are given in milliseconds and are 50 // All the values for starts and ends are given in milliseconds and are
50 // offsets with respect to the given base time. 51 // offsets with respect to the given base time.
51 struct ResourceLoadTimingInfo { 52 struct ResourceLoadTimingInfo {
52 WEBKIT_GLUE_EXPORT ResourceLoadTimingInfo(); 53 WEBKIT_GLUE_EXPORT ResourceLoadTimingInfo();
53 WEBKIT_GLUE_EXPORT ~ResourceLoadTimingInfo(); 54 WEBKIT_GLUE_EXPORT ~ResourceLoadTimingInfo();
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 const base::TimeTicks& completion_time) = 0; 342 const base::TimeTicks& completion_time) = 0;
342 343
343 protected: 344 protected:
344 virtual ~Peer() {} 345 virtual ~Peer() {}
345 }; 346 };
346 347
347 // use WebKitPlatformSupportImpl::CreateResourceLoader() for construction, but 348 // use WebKitPlatformSupportImpl::CreateResourceLoader() for construction, but
348 // anybody can delete at any time, INCLUDING during processing of callbacks. 349 // anybody can delete at any time, INCLUDING during processing of callbacks.
349 WEBKIT_GLUE_EXPORT virtual ~ResourceLoaderBridge(); 350 WEBKIT_GLUE_EXPORT virtual ~ResourceLoaderBridge();
350 351
351 // Call this method before calling Start() to append a chunk of binary data 352 // Call this method before calling Start() to set the request body.
352 // to the request body. May only be used with HTTP(S) POST requests. 353 // May only be used with HTTP(S) POST requests.
353 virtual void AppendDataToUpload(const char* data, int data_len) = 0; 354 virtual void SetRequestBody(ResourceRequestBody* request_body) = 0;
354
355 // Call this method before calling Start() to append the contents of a file
356 // to the request body. May only be used with HTTP(S) POST requests.
357 void AppendFileToUpload(const FilePath& file_path) {
358 AppendFileRangeToUpload(file_path, 0, kuint64max, base::Time());
359 }
360
361 // Call this method before calling Start() to append the contents of a file
362 // to the request body. May only be used with HTTP(S) POST requests.
363 virtual void AppendFileRangeToUpload(
364 const FilePath& file_path,
365 uint64 offset,
366 uint64 length,
367 const base::Time& expected_modification_time) = 0;
368
369 // Call this method before calling Start() to append the contents of a blob
370 // to the request body. May only be used with HTTP(S) POST requests.
371 virtual void AppendBlobToUpload(const GURL& blob_url) = 0;
372
373 // Call this method before calling Start() to assign an upload identifier to
374 // this request. This is used to enable caching of POST responses. A value
375 // of 0 implies the unspecified identifier.
376 virtual void SetUploadIdentifier(int64 identifier) = 0;
377 355
378 // Call this method to initiate the request. If this method succeeds, then 356 // Call this method to initiate the request. If this method succeeds, then
379 // the peer's methods will be called asynchronously to report various events. 357 // the peer's methods will be called asynchronously to report various events.
380 virtual bool Start(Peer* peer) = 0; 358 virtual bool Start(Peer* peer) = 0;
381 359
382 // Call this method to cancel a request that is in progress. This method 360 // Call this method to cancel a request that is in progress. This method
383 // causes the request to immediately transition into the 'done' state. The 361 // causes the request to immediately transition into the 'done' state. The
384 // OnCompletedRequest method will be called asynchronously; this assumes 362 // OnCompletedRequest method will be called asynchronously; this assumes
385 // the peer is still valid. 363 // the peer is still valid.
386 virtual void Cancel() = 0; 364 virtual void Cancel() = 0;
(...skipping 18 matching lines...) Expand all
405 // methods may be called to construct the body of the request. 383 // methods may be called to construct the body of the request.
406 WEBKIT_GLUE_EXPORT ResourceLoaderBridge(); 384 WEBKIT_GLUE_EXPORT ResourceLoaderBridge();
407 385
408 private: 386 private:
409 DISALLOW_COPY_AND_ASSIGN(ResourceLoaderBridge); 387 DISALLOW_COPY_AND_ASSIGN(ResourceLoaderBridge);
410 }; 388 };
411 389
412 } // namespace webkit_glue 390 } // namespace webkit_glue
413 391
414 #endif // WEBKIT_GLUE_RESOURCE_LOADER_BRIDGE_H_ 392 #endif // WEBKIT_GLUE_RESOURCE_LOADER_BRIDGE_H_
OLDNEW
« no previous file with comments | « webkit/blob/blob_storage_controller_unittest.cc ('k') | webkit/glue/resource_request_body.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698