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

Side by Side Diff: Source/bindings/v8/V8AbstractEventListener.cpp

Issue 23600034: Use TRYCATCH_FOR_V8STRINGRESOURCE in AbstractEventListener::invokeEventHandler() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 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 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 } 149 }
150 150
151 if (event->type() == eventNames().beforeunloadEvent || event->type() == even tNames().unloadEvent) 151 if (event->type() == eventNames().beforeunloadEvent || event->type() == even tNames().unloadEvent)
152 DateExtension::get()->setAllowSleep(true, v8Context->GetIsolate()); 152 DateExtension::get()->setAllowSleep(true, v8Context->GetIsolate());
153 153
154 ASSERT(!handleOutOfMemory() || returnValue.IsEmpty()); 154 ASSERT(!handleOutOfMemory() || returnValue.IsEmpty());
155 155
156 if (returnValue.IsEmpty()) 156 if (returnValue.IsEmpty())
157 return; 157 return;
158 158
159 if (!returnValue->IsNull() && !returnValue->IsUndefined() && event->isBefore UnloadEvent()) 159 if (!returnValue->IsNull() && !returnValue->IsUndefined() && event->isBefore UnloadEvent()) {
160 toBeforeUnloadEvent(event)->setReturnValue(toWebCoreString(returnValue)) ; 160 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, stringReturnVal ue, returnValue);
161 toBeforeUnloadEvent(event)->setReturnValue(stringReturnValue);
162 }
161 163
162 if (m_isAttribute && shouldPreventDefault(returnValue)) 164 if (m_isAttribute && shouldPreventDefault(returnValue))
163 event->preventDefault(); 165 event->preventDefault();
164 } 166 }
165 167
166 bool V8AbstractEventListener::shouldPreventDefault(v8::Local<v8::Value> returnVa lue) 168 bool V8AbstractEventListener::shouldPreventDefault(v8::Local<v8::Value> returnVa lue)
167 { 169 {
168 // Prevent default action if the return value is false in accord with the sp ec 170 // Prevent default action if the return value is false in accord with the sp ec
169 // http://www.w3.org/TR/html5/webappapis.html#event-handler-attributes 171 // http://www.w3.org/TR/html5/webappapis.html#event-handler-attributes
170 return returnValue->IsBoolean() && !returnValue->BooleanValue(); 172 return returnValue->IsBoolean() && !returnValue->BooleanValue();
(...skipping 12 matching lines...) Expand all
183 return v8::Local<v8::Object>(); 185 return v8::Local<v8::Object>();
184 return v8::Local<v8::Object>::New(v8::Handle<v8::Object>::Cast(value)); 186 return v8::Local<v8::Object>::New(v8::Handle<v8::Object>::Cast(value));
185 } 187 }
186 188
187 void V8AbstractEventListener::makeWeakCallback(v8::Isolate*, v8::Persistent<v8:: Object>*, V8AbstractEventListener* listener) 189 void V8AbstractEventListener::makeWeakCallback(v8::Isolate*, v8::Persistent<v8:: Object>*, V8AbstractEventListener* listener)
188 { 190 {
189 listener->m_listener.clear(); 191 listener->m_listener.clear();
190 } 192 }
191 193
192 } // namespace WebCore 194 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698