| OLD | NEW |
| 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 #include "net/proxy/proxy_resolver_v8.h" | 5 #include "net/proxy/proxy_resolver_v8.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cstdio> | 8 #include <cstdio> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 } | 397 } |
| 398 | 398 |
| 399 results->UsePacString(UTF16ToASCII(ret_str)); | 399 results->UsePacString(UTF16ToASCII(ret_str)); |
| 400 return OK; | 400 return OK; |
| 401 } | 401 } |
| 402 | 402 |
| 403 int InitV8(const scoped_refptr<ProxyResolverScriptData>& pac_script) { | 403 int InitV8(const scoped_refptr<ProxyResolverScriptData>& pac_script) { |
| 404 v8::Locker locked(isolate_); | 404 v8::Locker locked(isolate_); |
| 405 v8::HandleScope scope; | 405 v8::HandleScope scope; |
| 406 | 406 |
| 407 v8_this_ = v8::Persistent<v8::External>::New(isolate_, | 407 v8_this_.Reset(isolate_, v8::External::New(this)); |
| 408 v8::External::New(this)); | |
| 409 v8::Local<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); | 408 v8::Local<v8::ObjectTemplate> global_template = v8::ObjectTemplate::New(); |
| 410 | 409 |
| 411 // Attach the javascript bindings. | 410 // Attach the javascript bindings. |
| 412 v8::Local<v8::FunctionTemplate> alert_template = | 411 v8::Local<v8::FunctionTemplate> alert_template = |
| 413 v8::FunctionTemplate::New(&AlertCallback, v8_this_); | 412 v8::FunctionTemplate::New(&AlertCallback, v8_this_); |
| 414 global_template->Set(ASCIILiteralToV8String("alert"), alert_template); | 413 global_template->Set(ASCIILiteralToV8String("alert"), alert_template); |
| 415 | 414 |
| 416 v8::Local<v8::FunctionTemplate> my_ip_address_template = | 415 v8::Local<v8::FunctionTemplate> my_ip_address_template = |
| 417 v8::FunctionTemplate::New(&MyIpAddressCallback, v8_this_); | 416 v8::FunctionTemplate::New(&MyIpAddressCallback, v8_this_); |
| 418 global_template->Set(ASCIILiteralToV8String("myIpAddress"), | 417 global_template->Set(ASCIILiteralToV8String("myIpAddress"), |
| (...skipping 19 matching lines...) Expand all Loading... |
| 438 v8::Local<v8::FunctionTemplate> sort_ip_address_list_template = | 437 v8::Local<v8::FunctionTemplate> sort_ip_address_list_template = |
| 439 v8::FunctionTemplate::New(&SortIpAddressListCallback, v8_this_); | 438 v8::FunctionTemplate::New(&SortIpAddressListCallback, v8_this_); |
| 440 global_template->Set(ASCIILiteralToV8String("sortIpAddressList"), | 439 global_template->Set(ASCIILiteralToV8String("sortIpAddressList"), |
| 441 sort_ip_address_list_template); | 440 sort_ip_address_list_template); |
| 442 | 441 |
| 443 v8::Local<v8::FunctionTemplate> is_in_net_ex_template = | 442 v8::Local<v8::FunctionTemplate> is_in_net_ex_template = |
| 444 v8::FunctionTemplate::New(&IsInNetExCallback, v8_this_); | 443 v8::FunctionTemplate::New(&IsInNetExCallback, v8_this_); |
| 445 global_template->Set(ASCIILiteralToV8String("isInNetEx"), | 444 global_template->Set(ASCIILiteralToV8String("isInNetEx"), |
| 446 is_in_net_ex_template); | 445 is_in_net_ex_template); |
| 447 | 446 |
| 448 v8_context_ = v8::Persistent<v8::Context>::New( | 447 v8_context_.Reset( |
| 449 isolate_, v8::Context::New(isolate_, NULL, global_template)); | 448 isolate_, v8::Context::New(isolate_, NULL, global_template)); |
| 450 | 449 |
| 451 v8::Context::Scope ctx(v8_context_); | 450 v8::Context::Scope ctx(v8_context_); |
| 452 | 451 |
| 453 // Add the PAC utility functions to the environment. | 452 // Add the PAC utility functions to the environment. |
| 454 // (This script should never fail, as it is a string literal!) | 453 // (This script should never fail, as it is a string literal!) |
| 455 // Note that the two string literals are concatenated. | 454 // Note that the two string literals are concatenated. |
| 456 int rv = RunScript( | 455 int rv = RunScript( |
| 457 ASCIILiteralToV8String( | 456 ASCIILiteralToV8String( |
| 458 PROXY_RESOLVER_SCRIPT | 457 PROXY_RESOLVER_SCRIPT |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 if (!g_default_isolate_) | 752 if (!g_default_isolate_) |
| 754 return 0; | 753 return 0; |
| 755 | 754 |
| 756 v8::Locker locked(g_default_isolate_); | 755 v8::Locker locked(g_default_isolate_); |
| 757 v8::HeapStatistics heap_statistics; | 756 v8::HeapStatistics heap_statistics; |
| 758 g_default_isolate_->GetHeapStatistics(&heap_statistics); | 757 g_default_isolate_->GetHeapStatistics(&heap_statistics); |
| 759 return heap_statistics.used_heap_size(); | 758 return heap_statistics.used_heap_size(); |
| 760 } | 759 } |
| 761 | 760 |
| 762 } // namespace net | 761 } // namespace net |
| OLD | NEW |