| Index: chrome/renderer/extensions/module_system.cc
|
| diff --git a/chrome/renderer/extensions/module_system.cc b/chrome/renderer/extensions/module_system.cc
|
| index ffe446c74bba3848ff4b7239c0df54fb14153c26..f539d58a40a2c76b72737ca04492aee7985de1ab 100644
|
| --- a/chrome/renderer/extensions/module_system.cc
|
| +++ b/chrome/renderer/extensions/module_system.cc
|
| @@ -210,7 +210,7 @@ v8::Handle<v8::Value> ModuleSystem::RequireForJsInner(
|
| if (!exports->IsUndefined())
|
| return handle_scope.Close(exports);
|
|
|
| - std::string module_name_str = *v8::String::AsciiValue(module_name);
|
| + std::string module_name_str = *v8::String::Utf8Value(module_name);
|
| v8::Handle<v8::Value> source(GetSource(module_name_str));
|
| if (source.IsEmpty() || source->IsUndefined()) {
|
| Fatal(context_, "No source for require(" + module_name_str + ")");
|
| @@ -376,7 +376,7 @@ void ModuleSystem::LazyFieldGetterInner(
|
| ModuleSystem* module_system = static_cast<ModuleSystem*>(
|
| v8::Handle<v8::External>::Cast(module_system_value)->Value());
|
|
|
| - std::string name = *v8::String::AsciiValue(
|
| + std::string name = *v8::String::Utf8Value(
|
| parameters->Get(v8::String::New(kModuleName))->ToString());
|
|
|
| // Switch to our v8 context because we need functions created while running
|
| @@ -400,7 +400,7 @@ void ModuleSystem::LazyFieldGetterInner(
|
| parameters->Get(v8::String::New(kModuleField))->ToString();
|
|
|
| if (!module->Has(field)) {
|
| - std::string field_str = *v8::String::AsciiValue(field);
|
| + std::string field_str = *v8::String::Utf8Value(field);
|
| Fatal(module_system->context_,
|
| "Lazy require of " + name + "." + field_str + " did not set the " +
|
| field_str + " field");
|
| @@ -468,10 +468,16 @@ v8::Handle<v8::Value> ModuleSystem::RunString(v8::Handle<v8::String> code,
|
| v8::HandleScope handle_scope(GetIsolate());
|
| v8::Context::Scope context_scope(context()->v8_context());
|
|
|
| + // Prepend extensions:: to |name| so that internal code can be differentiated
|
| + // from external code in stack traces. This has no effect on behaviour.
|
| + std::string internal_name = base::StringPrintf("extensions::%s",
|
| + *v8::String::Utf8Value(name));
|
| +
|
| WebKit::WebScopedMicrotaskSuppression suppression;
|
| v8::TryCatch try_catch;
|
| try_catch.SetCaptureMessage(true);
|
| - v8::Handle<v8::Script> script(v8::Script::New(code, name));
|
| + v8::Handle<v8::Script> script(v8::Script::New(
|
| + code, v8::String::New(internal_name.c_str(), internal_name.size())));
|
| if (try_catch.HasCaught()) {
|
| HandleException(try_catch);
|
| return v8::Undefined();
|
| @@ -496,7 +502,7 @@ v8::Handle<v8::Value> ModuleSystem::GetSource(const std::string& module_name) {
|
| void ModuleSystem::RequireNative(
|
| const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| CHECK_EQ(1, args.Length());
|
| - std::string native_name = *v8::String::AsciiValue(args[0]->ToString());
|
| + std::string native_name = *v8::String::Utf8Value(args[0]->ToString());
|
| args.GetReturnValue().Set(RequireNativeFromString(native_name));
|
| }
|
|
|
|
|