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

Side by Side Diff: extensions/renderer/activity_log_converter_strategy.cc

Issue 1115563002: extensions/renderer: Use v8::Local instead of v8::Handle. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/renderer/activity_log_converter_strategy.h" 5 #include "extensions/renderer/activity_log_converter_strategy.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "v8/include/v8.h" 9 #include "v8/include/v8.h"
10 10
11 namespace extensions { 11 namespace extensions {
12 12
13 namespace { 13 namespace {
14 14
15 // Summarize a V8 value. This performs a shallow conversion in all cases, and 15 // Summarize a V8 value. This performs a shallow conversion in all cases, and
16 // returns only a string with a description of the value (e.g., 16 // returns only a string with a description of the value (e.g.,
17 // "[HTMLElement]"). 17 // "[HTMLElement]").
18 scoped_ptr<base::Value> SummarizeV8Value(v8::Isolate* isolate, 18 scoped_ptr<base::Value> SummarizeV8Value(v8::Isolate* isolate,
19 v8::Handle<v8::Object> object) { 19 v8::Local<v8::Object> object) {
20 v8::TryCatch try_catch; 20 v8::TryCatch try_catch;
21 v8::Isolate::DisallowJavascriptExecutionScope scope( 21 v8::Isolate::DisallowJavascriptExecutionScope scope(
22 isolate, v8::Isolate::DisallowJavascriptExecutionScope::THROW_ON_FAILURE); 22 isolate, v8::Isolate::DisallowJavascriptExecutionScope::THROW_ON_FAILURE);
23 v8::Local<v8::String> name = v8::String::NewFromUtf8(isolate, "["); 23 v8::Local<v8::String> name = v8::String::NewFromUtf8(isolate, "[");
24 if (object->IsFunction()) { 24 if (object->IsFunction()) {
25 name = 25 name =
26 v8::String::Concat(name, v8::String::NewFromUtf8(isolate, "Function")); 26 v8::String::Concat(name, v8::String::NewFromUtf8(isolate, "Function"));
27 v8::Local<v8::Value> fname = 27 v8::Local<v8::Value> fname =
28 v8::Handle<v8::Function>::Cast(object)->GetName(); 28 v8::Local<v8::Function>::Cast(object)->GetName();
29 if (fname->IsString() && v8::Handle<v8::String>::Cast(fname)->Length()) { 29 if (fname->IsString() && v8::Local<v8::String>::Cast(fname)->Length()) {
30 name = v8::String::Concat(name, v8::String::NewFromUtf8(isolate, " ")); 30 name = v8::String::Concat(name, v8::String::NewFromUtf8(isolate, " "));
31 name = v8::String::Concat(name, v8::Handle<v8::String>::Cast(fname)); 31 name = v8::String::Concat(name, v8::Local<v8::String>::Cast(fname));
32 name = v8::String::Concat(name, v8::String::NewFromUtf8(isolate, "()")); 32 name = v8::String::Concat(name, v8::String::NewFromUtf8(isolate, "()"));
33 } 33 }
34 } else { 34 } else {
35 name = v8::String::Concat(name, object->GetConstructorName()); 35 name = v8::String::Concat(name, object->GetConstructorName());
36 } 36 }
37 name = v8::String::Concat(name, v8::String::NewFromUtf8(isolate, "]")); 37 name = v8::String::Concat(name, v8::String::NewFromUtf8(isolate, "]"));
38 38
39 if (try_catch.HasCaught()) { 39 if (try_catch.HasCaught()) {
40 return scoped_ptr<base::Value>( 40 return scoped_ptr<base::Value>(
41 new base::StringValue("[JS Execution Exception]")); 41 new base::StringValue("[JS Execution Exception]"));
42 } 42 }
43 43
44 return scoped_ptr<base::Value>( 44 return scoped_ptr<base::Value>(
45 new base::StringValue(std::string(*v8::String::Utf8Value(name)))); 45 new base::StringValue(std::string(*v8::String::Utf8Value(name))));
46 } 46 }
47 47
48 } // namespace 48 } // namespace
49 49
50 ActivityLogConverterStrategy::ActivityLogConverterStrategy() {} 50 ActivityLogConverterStrategy::ActivityLogConverterStrategy() {}
51 51
52 ActivityLogConverterStrategy::~ActivityLogConverterStrategy() {} 52 ActivityLogConverterStrategy::~ActivityLogConverterStrategy() {}
53 53
54 bool ActivityLogConverterStrategy::FromV8Object( 54 bool ActivityLogConverterStrategy::FromV8Object(
55 v8::Handle<v8::Object> value, 55 v8::Local<v8::Object> value,
56 base::Value** out, 56 base::Value** out,
57 v8::Isolate* isolate, 57 v8::Isolate* isolate,
58 const FromV8ValueCallback& callback) const { 58 const FromV8ValueCallback& callback) const {
59 return FromV8Internal(value, out, isolate, callback); 59 return FromV8Internal(value, out, isolate, callback);
60 } 60 }
61 61
62 bool ActivityLogConverterStrategy::FromV8Array( 62 bool ActivityLogConverterStrategy::FromV8Array(
63 v8::Handle<v8::Array> value, 63 v8::Local<v8::Array> value,
64 base::Value** out, 64 base::Value** out,
65 v8::Isolate* isolate, 65 v8::Isolate* isolate,
66 const FromV8ValueCallback& callback) const { 66 const FromV8ValueCallback& callback) const {
67 return FromV8Internal(value, out, isolate, callback); 67 return FromV8Internal(value, out, isolate, callback);
68 } 68 }
69 69
70 bool ActivityLogConverterStrategy::FromV8Internal( 70 bool ActivityLogConverterStrategy::FromV8Internal(
71 v8::Handle<v8::Object> value, 71 v8::Local<v8::Object> value,
72 base::Value** out, 72 base::Value** out,
73 v8::Isolate* isolate, 73 v8::Isolate* isolate,
74 const FromV8ValueCallback& callback) const { 74 const FromV8ValueCallback& callback) const {
75 scoped_ptr<base::Value> parsed_value; 75 scoped_ptr<base::Value> parsed_value;
76 parsed_value = SummarizeV8Value(isolate, value); 76 parsed_value = SummarizeV8Value(isolate, value);
77 *out = parsed_value.release(); 77 *out = parsed_value.release();
78 78
79 return true; 79 return true;
80 } 80 }
81 81
82 } // namespace extensions 82 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/activity_log_converter_strategy.h ('k') | extensions/renderer/activity_log_converter_strategy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698