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

Unified Diff: net/proxy/proxy_resolver_v8.cc

Issue 227233006: Make net use v8 through gin (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 6 years, 8 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
« no previous file with comments | « net/proxy/proxy_resolver_v8.h ('k') | net/test/run_all_unittests.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/proxy/proxy_resolver_v8.cc
diff --git a/net/proxy/proxy_resolver_v8.cc b/net/proxy/proxy_resolver_v8.cc
index 7e44f15bda5b902049dda87348c5c389c28d3f5c..9c9f421b91051ef0c739aa360490821963407ffb 100644
--- a/net/proxy/proxy_resolver_v8.cc
+++ b/net/proxy/proxy_resolver_v8.cc
@@ -9,11 +9,13 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
+#include "base/debug/leak_annotations.h"
#include "base/logging.h"
#include "base/strings/string_tokenizer.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/synchronization/lock.h"
+#include "gin/public/isolate_holder.h"
#include "net/base/net_errors.h"
#include "net/base/net_log.h"
#include "net/base/net_util.h"
@@ -764,59 +766,44 @@ int ProxyResolverV8::SetPacScript(
}
// static
-void ProxyResolverV8::RememberDefaultIsolate() {
- v8::Isolate* isolate = v8::Isolate::GetCurrent();
- DCHECK(isolate)
- << "ProxyResolverV8::RememberDefaultIsolate called on wrong thread";
- DCHECK(g_default_isolate_ == NULL || g_default_isolate_ == isolate)
- << "Default Isolate can not be changed";
- g_default_isolate_ = isolate;
+void ProxyResolverV8::EnsureIsolateCreated() {
+ if (g_proxy_resolver_isolate_)
+ return;
+ g_proxy_resolver_isolate_ =
+ new gin::IsolateHolder(gin::IsolateHolder::kNonStrictMode);
+ ANNOTATE_LEAKING_OBJECT_PTR(g_proxy_resolver_isolate_);
}
-#if defined(OS_WIN)
-// static
-void ProxyResolverV8::CreateIsolate() {
- v8::Isolate* isolate = v8::Isolate::New();
- DCHECK(isolate);
- DCHECK(g_default_isolate_ == NULL) << "Default Isolate can not be set twice";
-
- isolate->Enter();
- v8::V8::Initialize();
-
- g_default_isolate_ = isolate;
-}
-#endif // defined(OS_WIN)
-
// static
v8::Isolate* ProxyResolverV8::GetDefaultIsolate() {
- DCHECK(g_default_isolate_)
- << "Must call ProxyResolverV8::RememberDefaultIsolate() first";
- return g_default_isolate_;
+ DCHECK(g_proxy_resolver_isolate_)
+ << "Must call ProxyResolverV8::EnsureIsolateCreated() first";
+ return g_proxy_resolver_isolate_->isolate();
}
-v8::Isolate* ProxyResolverV8::g_default_isolate_ = NULL;
+gin::IsolateHolder* ProxyResolverV8::g_proxy_resolver_isolate_ = NULL;
// static
size_t ProxyResolverV8::GetTotalHeapSize() {
- if (!g_default_isolate_)
+ if (!g_proxy_resolver_isolate_)
return 0;
- v8::Locker locked(g_default_isolate_);
- v8::Isolate::Scope isolate_scope(g_default_isolate_);
+ v8::Locker locked(g_proxy_resolver_isolate_->isolate());
+ v8::Isolate::Scope isolate_scope(g_proxy_resolver_isolate_->isolate());
v8::HeapStatistics heap_statistics;
- g_default_isolate_->GetHeapStatistics(&heap_statistics);
+ g_proxy_resolver_isolate_->isolate()->GetHeapStatistics(&heap_statistics);
return heap_statistics.total_heap_size();
}
// static
size_t ProxyResolverV8::GetUsedHeapSize() {
- if (!g_default_isolate_)
+ if (!g_proxy_resolver_isolate_)
return 0;
- v8::Locker locked(g_default_isolate_);
- v8::Isolate::Scope isolate_scope(g_default_isolate_);
+ v8::Locker locked(g_proxy_resolver_isolate_->isolate());
+ v8::Isolate::Scope isolate_scope(g_proxy_resolver_isolate_->isolate());
v8::HeapStatistics heap_statistics;
- g_default_isolate_->GetHeapStatistics(&heap_statistics);
+ g_proxy_resolver_isolate_->isolate()->GetHeapStatistics(&heap_statistics);
return heap_statistics.used_heap_size();
}
« no previous file with comments | « net/proxy/proxy_resolver_v8.h ('k') | net/test/run_all_unittests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698