Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 9e3a0456 authored by Carmelo Messina's avatar Carmelo Messina
Browse files

Add a proxy configuration page: fix crash on invalid proxy (#1902)

parent 6132a224
Loading
Loading
Loading
Loading
+26 −5
Original line number Diff line number Diff line
@@ -38,9 +38,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 .../proxy_config/proxy_config_dictionary.cc   |  30 +-
 .../proxy_config/proxy_config_dictionary.h    |   7 +-
 .../proxy_config/proxy_policy_handler.cc      |   2 +-
 net/proxy_resolution/proxy_config.cc          |  51 ++-
 net/proxy_resolution/pac_file_fetcher_impl.cc |   8 -
 net/proxy_resolution/proxy_config.cc          |  53 ++-
 net/proxy_resolution/proxy_config.h           |   3 +
 25 files changed, 984 insertions(+), 18 deletions(-)
 26 files changed, 986 insertions(+), 26 deletions(-)
 create mode 100644 chrome/browser/resources/proxy_config.css
 create mode 100644 chrome/browser/resources/proxy_config.html
 create mode 100644 chrome/browser/resources/proxy_config.js
@@ -1328,6 +1329,24 @@ diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_
       }
       break;
     }
diff --git a/net/proxy_resolution/pac_file_fetcher_impl.cc b/net/proxy_resolution/pac_file_fetcher_impl.cc
--- a/net/proxy_resolution/pac_file_fetcher_impl.cc
+++ b/net/proxy_resolution/pac_file_fetcher_impl.cc
@@ -359,14 +359,6 @@ bool PacFileFetcherImpl::ConsumeBytesRead(URLRequest* request, int num_bytes) {
     return false;
   }
 
-  // Enforce maximum size bound.
-  if (num_bytes + bytes_read_so_far_.size() >
-      static_cast<size_t>(max_response_bytes_)) {
-    result_code_ = ERR_FILE_TOO_BIG;
-    request->Cancel();
-    return false;
-  }
-
   bytes_read_so_far_.append(buf_->data(), num_bytes);
   return true;
 }
diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_config.cc
--- a/net/proxy_resolution/proxy_config.cc
+++ b/net/proxy_resolution/proxy_config.cc
@@ -1340,7 +1359,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
       }
 
       // Trim whitespace off the url scheme.
@@ -160,6 +160,55 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules,
@@ -160,6 +160,57 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules,
   }
 }
 
@@ -1348,9 +1367,11 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
+  if (type == Type::PROXY_LIST) {
+    std::string proxy_list;
+    for (const auto& proxy_chain : single_proxies.AllChains()) {
+      if (proxy_chain.length()) {
+        net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
+        proxy_list += ProxyServerToProxyUri(proxy_server) + ";";
+      }
+    }
+    // remove last semicolon
+    if (proxy_list.length() != 0 ) {
+      proxy_list.pop_back();