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

Unified Diff: content/browser/loader/mojo_async_resource_handler.h

Issue 2574143003: Implement upload progress handling in Mojo loading (Closed)
Patch Set: android build fix Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/loader/mojo_async_resource_handler.h
diff --git a/content/browser/loader/mojo_async_resource_handler.h b/content/browser/loader/mojo_async_resource_handler.h
index 2a8c9b5286ede7324000f91f5e3281d4ba419c58..1f8d3b6c0fdb4bbb423e226fb31067b681a20bc8 100644
--- a/content/browser/loader/mojo_async_resource_handler.h
+++ b/content/browser/loader/mojo_async_resource_handler.h
@@ -13,15 +13,16 @@
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
-#include "base/timer/timer.h"
#include "content/browser/loader/resource_handler.h"
+#include "content/browser/loader/upload_progress_tracker.h"
#include "content/common/content_export.h"
#include "content/common/url_loader.mojom.h"
#include "mojo/public/cpp/bindings/associated_binding.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "mojo/public/cpp/system/watcher.h"
#include "net/base/io_buffer.h"
-#include "url/gurl.h"
+
+class GURL;
namespace net {
class IOBufferWithSize;
@@ -65,7 +66,7 @@ class CONTENT_EXPORT MojoAsyncResourceHandler
bool* defer) override;
void OnDataDownloaded(int bytes_downloaded) override;
- // mojom::URLLoader implementation
+ // mojom::URLLoader implementation:
void FollowRedirect() override;
void OnWritableForTesting();
@@ -98,11 +99,17 @@ class CONTENT_EXPORT MojoAsyncResourceHandler
// |reported_total_received_bytes_|, returns it, and updates
// |reported_total_received_bytes_|.
int64_t CalculateRecentlyReceivedBytes();
- // This function can be overriden only for tests.
+
+ // These function can be overriden only for tests.
virtual void ReportBadMessage(const std::string& error);
+ virtual std::unique_ptr<UploadProgressTracker> CreateUploadProgressTracker(
+ const tracked_objects::Location& from_here,
mmenke 2017/01/19 16:06:49 Should forward declare tracked_objects::Location
tzik 2017/01/20 04:42:03 Done.
+ UploadProgressTracker::UploadProgressReportCallback callback);
void OnTransfer(mojom::URLLoaderAssociatedRequest mojo_request,
mojom::URLLoaderClientAssociatedPtr url_loader_client);
+ void SendUploadProgress(const net::UploadProgress& progress);
+ void OnUploadProgressACK();
ResourceDispatcherHostImpl* rdh_;
mojo::AssociatedBinding<mojom::URLLoader> binding_;
@@ -124,6 +131,8 @@ class CONTENT_EXPORT MojoAsyncResourceHandler
scoped_refptr<SharedWriter> shared_writer_;
mojo::ScopedDataPipeConsumerHandle response_body_consumer_handle_;
+ std::unique_ptr<UploadProgressTracker> upload_progress_tracker_;
+
base::WeakPtrFactory<MojoAsyncResourceHandler> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(MojoAsyncResourceHandler);
};

Powered by Google App Engine
This is Rietveld 408576698