aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-09-20 02:59:53 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-09-20 02:59:53 +0000
commit39dc60d2ecef7e261bb08c90c71f985f132872c6 (patch)
tree98af40851d2fee29d1750424d7212eef661862a3
parentd38b089ebf465f0e6ab713c43988ff8ae7abd0e5 (diff)
parentaf8de44fa4f7c228d812e8db86d4d16585ed1050 (diff)
downloadchromium-libpac-39dc60d2ecef7e261bb08c90c71f985f132872c6.tar.gz
Merge cherrypicks of [9427496, 9427497, 9427498, 9427499, 9427540, 9427541, 9427522, 9427523, 9427525, 9427526, 9427527, 9427504, 9427542, 9427505, 9427468, 9427469, 9427506, 9427236, 9427238, 9427239, 9427454, 9427455, 9427561, 9427390, 9427470, 9427456, 9427472, 9427393, 9427531, 9427213, 9427459, 9427581, 9427583, 9427545, 9427362, 9427563, 9427564, 9427533, 9427534, 9427546, 9427395, 9427397, 9427475, 9427565, 9427535] into qt-releaseandroid-10.0.0_r11android-10.0.0_r10android10-release
Change-Id: I667e1da1bcc793833705937607151ad5f803e4fc
-rw-r--r--src/proxy_resolver_v8.cc3
-rw-r--r--test/js-unittest/b_139806216.js4
-rw-r--r--test/proxy_resolver_v8_unittest.cc15
-rw-r--r--test/proxy_test_script.h7
4 files changed, 27 insertions, 2 deletions
diff --git a/src/proxy_resolver_v8.cc b/src/proxy_resolver_v8.cc
index 289102e..5884bd1 100644
--- a/src/proxy_resolver_v8.cc
+++ b/src/proxy_resolver_v8.cc
@@ -767,9 +767,8 @@ int ProxyResolverV8::SetPacScript(const std::u16string& script_data) {
v8::V8::SetFlagsFromString(kNoOpt, strlen(kNoOpt));
// Try parsing the PAC script.
- ArrayBufferAllocator allocator;
v8::Isolate::CreateParams create_params;
- create_params.array_buffer_allocator = &allocator;
+ create_params.array_buffer_allocator = v8::ArrayBuffer::Allocator::NewDefaultAllocator();
context_ = new Context(js_bindings_, error_listener_, v8::Isolate::New(create_params));
int rv;
diff --git a/test/js-unittest/b_139806216.js b/test/js-unittest/b_139806216.js
new file mode 100644
index 0000000..3a1e34d
--- /dev/null
+++ b/test/js-unittest/b_139806216.js
@@ -0,0 +1,4 @@
+function FindProxyForURL(url, host){
+ var x = new ArrayBuffer(1);
+ return "DIRECT";
+}
diff --git a/test/proxy_resolver_v8_unittest.cc b/test/proxy_resolver_v8_unittest.cc
index 66b2a23..3f6d20f 100644
--- a/test/proxy_resolver_v8_unittest.cc
+++ b/test/proxy_resolver_v8_unittest.cc
@@ -643,5 +643,20 @@ TEST(ProxyResolverV8Test, B_132073833) {
EXPECT_EQ("DIRECT", proxies[0]);
}
+TEST(ProxyResolverV8Test, B_139806216) {
+ ProxyResolverV8WithMockBindings resolver(new MockJSBindings());
+ int result = resolver.SetPacScript(SCRIPT(B_139806216_JS));
+ EXPECT_EQ(OK, result);
+
+ // Execute FindProxyForURL().
+ result = resolver.GetProxyForURL(kQueryUrl, kQueryHost, &kResults);
+
+ EXPECT_EQ(OK, result);
+ std::vector<std::string> proxies = string16ToProxyList(kResults);
+ EXPECT_EQ(1U, proxies.size());
+ EXPECT_EQ("DIRECT", proxies[0]);
+}
+
+
} // namespace
} // namespace net
diff --git a/test/proxy_test_script.h b/test/proxy_test_script.h
index 0d1b77e..500a57a 100644
--- a/test/proxy_test_script.h
+++ b/test/proxy_test_script.h
@@ -28,6 +28,13 @@
"\n" \
"var object;\n" \
+#define B_139806216_JS \
+ u""\
+ "function FindProxyForURL(url, host){\n" \
+ " var x = new ArrayBuffer(1);\n" \
+ " return \"DIRECT\";\n" \
+ "}\n" \
+
#define BINDING_FROM_GLOBAL_JS \
u""\
"// Calls a bindings outside of FindProxyForURL(). This causes the code to\n" \