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

Side by Side Diff: chrome/browser/debugger/debugger_node.cc

Issue 39206: NO CODE CHANGE. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "chrome/browser/debugger/debugger_node.h" 5 #include "chrome/browser/debugger/debugger_node.h"
6 6
7 #include "base/process_util.h" 7 #include "base/process_util.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "chrome/browser/browser.h" 9 #include "chrome/browser/browser.h"
10 #include "chrome/browser/browser_list.h" 10 #include "chrome/browser/browser_list.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 v8::Local<v8::External> node = v8::External::New(wrap); 62 v8::Local<v8::External> node = v8::External::New(wrap);
63 // TODO(erikkay): cache these templates? 63 // TODO(erikkay): cache these templates?
64 v8::Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(); 64 v8::Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
65 if (IsFunction()) { 65 if (IsFunction()) {
66 templ->SetCallHandler(&DebuggerNode::NodeFunc, node); 66 templ->SetCallHandler(&DebuggerNode::NodeFunc, node);
67 v8::Local<v8::Function> f = templ->GetFunction(); 67 v8::Local<v8::Function> f = templ->GetFunction();
68 return f; 68 return f;
69 } 69 }
70 v8::Local<v8::ObjectTemplate> instance = templ->InstanceTemplate(); 70 v8::Local<v8::ObjectTemplate> instance = templ->InstanceTemplate();
71 if (IsObject()) { 71 if (IsObject()) {
72 instance->SetNamedPropertyHandler(&DebuggerNode::NodeGetter, 0, 0, 0, 0, nod e); 72 instance->SetNamedPropertyHandler(&DebuggerNode::NodeGetter, 0, 0, 0, 0,
73 node);
73 // TODO(erikkay): verify that the interceptor does not have to be 74 // TODO(erikkay): verify that the interceptor does not have to be
74 // behind the object 75 // behind the object
75 } 76 }
76 if (IsCollection()) { 77 if (IsCollection()) {
77 instance->SetIndexedPropertyHandler(&DebuggerNode::NodeIndex, 0, 0, 0, 0, no de); 78 instance->SetIndexedPropertyHandler(&DebuggerNode::NodeIndex, 0, 0, 0, 0,
79 node);
78 } 80 }
79 v8::Local<v8::Object> ret = instance->NewInstance(); 81 v8::Local<v8::Object> ret = instance->NewInstance();
80 v8::Persistent<v8::Object> p = v8::Persistent<v8::Object>::New(ret); 82 v8::Persistent<v8::Object> p = v8::Persistent<v8::Object>::New(ret);
81 p.MakeWeak(wrap, &DebuggerShell::HandleWeakReference); 83 p.MakeWeak(wrap, &DebuggerShell::HandleWeakReference);
82 return ret; 84 return ret;
83 } 85 }
84 86
85 v8::Handle<v8::Value> DebuggerNode::NodeGetter(v8::Local<v8::String> prop, 87 v8::Handle<v8::Value> DebuggerNode::NodeGetter(v8::Local<v8::String> prop,
86 const v8::AccessorInfo& info) { 88 const v8::AccessorInfo& info) {
87 DebuggerNodeWrapper* w = 89 DebuggerNodeWrapper* w = static_cast<DebuggerNodeWrapper*>(v8::External::Cast(
88 static_cast<DebuggerNodeWrapper*>(v8::External::Cast(*info.Data())->Value()) ; 90 *info.Data())->Value());
89 DebuggerNode* n = w->node(); 91 DebuggerNode* n = w->node();
90 if (n->IsValid() && n->IsObject()) { 92 if (n->IsValid() && n->IsObject()) {
91 return n->PropGetter(prop, info); 93 return n->PropGetter(prop, info);
92 } else { 94 } else {
93 return v8::Undefined(); 95 return v8::Undefined();
94 } 96 }
95 } 97 }
96 98
97 v8::Handle<v8::Value> DebuggerNode::NodeIndex(uint32_t index, 99 v8::Handle<v8::Value> DebuggerNode::NodeIndex(uint32_t index,
98 const v8::AccessorInfo& info) { 100 const v8::AccessorInfo& info) {
99 DebuggerNodeWrapper* w = 101 DebuggerNodeWrapper* w = static_cast<DebuggerNodeWrapper*>(v8::External::Cast(
100 static_cast<DebuggerNodeWrapper*>(v8::External::Cast(*info.Data())->Value()) ; 102 *info.Data())->Value());
101 DebuggerNode* n = w->node(); 103 DebuggerNode* n = w->node();
102 if (n->IsValid() && n->IsCollection()) { 104 if (n->IsValid() && n->IsCollection()) {
103 return n->IndexGetter(index, info); 105 return n->IndexGetter(index, info);
104 } else { 106 } else {
105 return v8::Undefined(); 107 return v8::Undefined();
106 } 108 }
107 } 109 }
108 110
109 v8::Handle<v8::Value> DebuggerNode::NodeFunc(const v8::Arguments& args) { 111 v8::Handle<v8::Value> DebuggerNode::NodeFunc(const v8::Arguments& args) {
110 DebuggerNodeWrapper* w = 112 DebuggerNodeWrapper* w = static_cast<DebuggerNodeWrapper*>(v8::External::Cast(
111 static_cast<DebuggerNodeWrapper*>(v8::External::Cast(*args.Data())->Value()) ; 113 *args.Data())->Value());
112 DebuggerNode* n = w->node(); 114 DebuggerNode* n = w->node();
113 if (n->IsValid() && n->IsFunction()) { 115 if (n->IsValid() && n->IsFunction()) {
114 return n->Function(args); 116 return n->Function(args);
115 } else { 117 } else {
116 return v8::Undefined(); 118 return v8::Undefined();
117 } 119 }
118 } 120 }
119 121
120 122
121 123
122 ///////////////////////////////////////////// 124 /////////////////////////////////////////////
123 125
124 ChromeNode::ChromeNode(DebuggerShell* debugger) { 126 ChromeNode::ChromeNode(DebuggerShell* debugger) {
125 debugger_ = debugger; 127 debugger_ = debugger;
126 } 128 }
127 129
128 ChromeNode::~ChromeNode() { 130 ChromeNode::~ChromeNode() {
129 } 131 }
130 132
131 v8::Handle<v8::Value> ChromeNode::PropGetter(v8::Handle<v8::String> prop, 133 v8::Handle<v8::Value> ChromeNode::PropGetter(v8::Handle<v8::String> prop,
132 const v8::AccessorInfo& info) { 134 const v8::AccessorInfo& info) {
133 if (prop->Equals(v8::String::New("pid"))) { 135 if (prop->Equals(v8::String::New("pid"))) {
134 return v8::Number::New(base::GetCurrentProcId()); 136 return v8::Number::New(base::GetCurrentProcId());
135 } else if (prop->Equals(v8::String::New("browser"))) { 137 } else if (prop->Equals(v8::String::New("browser"))) {
136 BrowserListNode *node = BrowserListNode::BrowserList(); 138 BrowserListNode *node = BrowserListNode::BrowserList();
137 return node->NewInstance(); 139 return node->NewInstance();
138 } else if (prop->Equals(v8::String::New("setDebuggerReady"))) { 140 } else if (prop->Equals(v8::String::New("setDebuggerReady"))) {
139 FunctionNode<DebuggerShell>* f = 141 FunctionNode<DebuggerShell>* f =
140 new FunctionNode<DebuggerShell>(DebuggerShell::SetDebuggerReady, debugger_ ); 142 new FunctionNode<DebuggerShell>(DebuggerShell::SetDebuggerReady,
143 debugger_);
141 return f->NewInstance(); 144 return f->NewInstance();
142 } else if (prop->Equals(v8::String::New("setDebuggerBreak"))) { 145 } else if (prop->Equals(v8::String::New("setDebuggerBreak"))) {
143 FunctionNode<DebuggerShell>* f = 146 FunctionNode<DebuggerShell>* f =
144 new FunctionNode<DebuggerShell>(DebuggerShell::SetDebuggerBreak, debugger_ ); 147 new FunctionNode<DebuggerShell>(DebuggerShell::SetDebuggerBreak,
148 debugger_);
145 return f->NewInstance(); 149 return f->NewInstance();
146 } else if (prop->Equals(v8::String::New("foo"))) { 150 } else if (prop->Equals(v8::String::New("foo"))) {
147 return v8::Undefined(); 151 return v8::Undefined();
148 } else { 152 } else {
149 return prop; 153 return prop;
150 } 154 }
151 } 155 }
152 156
153 void ChromeNode::StopObserving(NotificationService *service) { 157 void ChromeNode::StopObserving(NotificationService *service) {
154 } 158 }
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 } 390 }
387 391
388 392
389 ////////////////////////////////// 393 //////////////////////////////////
390 394
391 template<class T> 395 template<class T>
392 v8::Handle<v8::Value> FunctionNode<T>::Function(const v8::Arguments &args) { 396 v8::Handle<v8::Value> FunctionNode<T>::Function(const v8::Arguments &args) {
393 return function_(args, data_); 397 return function_(args, data_);
394 } 398 }
395 399
OLDNEW
« no previous file with comments | « chrome/browser/debugger/debugger_io_socket.cc ('k') | chrome/browser/debugger/debugger_shell.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698