~artmello/oxide/oxide-handlekeyboardevent

« back to all changes in this revision

Viewing changes to shared/renderer/oxide_object_backed_native_handler.cc

  • Committer: Chris Coulson
  • Date: 2014-04-16 21:23:57 UTC
  • Revision ID: chris.coulson@canonical.com-20140416212357-dsmk9he9xodw8cg5
Update to Chromium 36.0.1941.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
// License along with this library; if not, write to the Free Software
16
16
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17
17
 
18
 
#define V8_ALLOW_ACCESS_TO_RAW_HANDLE_CONSTRUCTOR 1
19
 
 
20
18
#include "oxide_object_backed_native_handler.h"
21
19
 
22
20
#include "base/logging.h"
132
130
  object_template_.NewHandle(manager_->isolate())->Set(
133
131
      manager_->isolate(), name.c_str(), function_template);
134
132
 
135
 
  router_data_.push_back(UnsafePersistent<v8::Object>(&data));
 
133
  router_data_.Append(local_data);
136
134
}
137
135
 
138
136
void ObjectBackedNativeHandler::RouteAccessor(
164
162
      v8::String::NewFromUtf8(manager_->isolate(), name.c_str()),
165
163
      GetterRouter, SetterRouter, local_data, v8::DEFAULT, attr);
166
164
 
167
 
  router_data_.push_back(UnsafePersistent<v8::Object>(&data));
 
165
  router_data_.Append(local_data);
168
166
}
169
167
 
170
168
ObjectBackedNativeHandler::ObjectBackedNativeHandler(
171
169
    ScriptMessageManager* manager) :
172
170
    manager_(manager),
 
171
    router_data_(manager->isolate()),
173
172
    object_template_(manager->isolate(),
174
173
                     v8::ObjectTemplate::New(manager->isolate())) {}
175
174
 
177
176
  v8::HandleScope handle_scope(manager_->isolate());
178
177
  v8::Context::Scope context_scope(manager_->GetV8Context());
179
178
 
180
 
  for (RouterData::iterator it = router_data_.begin();
181
 
       it != router_data_.end(); ++it) {
182
 
    v8::Handle<v8::Object> data(it->newLocal(manager_->isolate()));
 
179
  for (size_t i = 0; i < router_data_.Size(); ++i) {
 
180
    v8::Handle<v8::Object> data = router_data_.Get(i);
183
181
    v8::Handle<v8::Value> handler_function_value(
184
182
        data->Get(v8::String::NewFromUtf8(manager_->isolate(),
185
183
                                          kHandlerFunction)));
208
206
                                           kHandlerSetter));
209
207
    }
210
208
    data->Delete(v8::String::NewFromUtf8(manager_->isolate(), kPropertyName));
211
 
    it->dispose();
212
209
  }
 
210
  router_data_.Clear();
213
211
}
214
212
 
215
213
v8::Handle<v8::Object> ObjectBackedNativeHandler::NewInstance() {