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

Unified Diff: third_party/WebKit/LayoutTests/http/tests/inspector-protocol/resources/data-xfer-resource.php

Issue 2167853003: [DevTools] Always report encodedDataLength in Network.ResponseReceived. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: changes Created 4 years, 3 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: third_party/WebKit/LayoutTests/http/tests/inspector-protocol/resources/data-xfer-resource.php
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/resources/data-xfer-resource.php b/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/resources/data-xfer-resource.php
new file mode 100644
index 0000000000000000000000000000000000000000..e47bffbe130f26acc70facd7ad69169d0e891763
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/resources/data-xfer-resource.php
@@ -0,0 +1,73 @@
+<?php
+header_remove("X-Powered-By");
+
+$redirect = (bool) $_GET["redirect"];
+$cached = (bool) $_GET["cached"];
+$chunked = (bool) $_GET["chunked"];
+$size = (int) $_GET["size"];
+$gzip = (bool) $_GET["gzip"];
+$flush_header_with_x_bytes = (int) $_GET["flush_header_with_x_bytes"];
+$wait_after_headers_packet = (int) $_GET["wait_after_headers_packet"];
+$flush_every_x_bytes = ((int) $_GET["flush_every"])?:1;
+$wait_every_x_bytes = ((int) $_GET["wait_every_x_bytes"])?:0xFFFFF;
+$wait_duration_every_x_bytes = ((int) $_GET["wait_duration_every_x_bytes"])?:50;
+
+$sent_data_size = 0;
+
+if ($redirect) {
+ unset($_GET["redirect"]);
+ header("Location: ?" . http_build_query($_GET));
+ exit;
+}
+
+// This is done because it should force netstack to handle data as it comes.
+header("Content-Type: application/json");
+
+if ($cached) {
+ header("HTTP/1.0 304 Not Modified");
+ exit;
+}
+
+if ($gzip)
+ ob_start("ob_gzhandler");
+else
+ ob_start();
+
+if (!$chunked)
+ header("Content-Length: " . $size);
+
+if ($flush_header_with_x_bytes) {
+ send_data($flush_header_with_x_bytes);
+ full_flush();
+}
+
+if ($wait_after_headers_packet)
+ usleep($wait_after_headers_packet * 1000);
+
+while ($sent_data_size < $size) {
+ $flush_size = $flush_every_x_bytes - ($sent_data_size % $flush_every_x_bytes);
+ $wait_size = $wait_every_x_bytes - ($sent_data_size % $wait_every_x_bytes);
+
+ $send_size = min($flish_size, $wait_size);
Nico 2017/05/11 16:58:20 This is probably supposed to be flush_size, not fl
+ if (!$send_size)
+ $send_size = max($flish_size, $wait_size);
+
+ send_data($send_size);
+ if ($sent_data_size % $flush_every_x_bytes === 0)
+ full_flush();
+ if ($sent_data_size % $wait_every_x_bytes === 0)
+ usleep($wait_duration_every_x_bytes * 1000);
+}
+
+function send_data($size)
+{
+ global $sent_data_size;
+ echo str_repeat("a", $size);
+ $sent_data_size += $size;
+}
+
+function full_flush()
+{
+ ob_flush();
+ flush();
+}

Powered by Google App Engine
This is Rietveld 408576698