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

Side by Side Diff: Source/bindings/core/v8/custom/V8WindowCustom.cpp

Issue 368313005: IDL: Add support for [TreatNullAs=EmptyString] (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: fix debug compilation Created 6 years, 5 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 /* 1 /*
2 * Copyright (C) 2009, 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2009, 2011 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 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 int transferablesArgIndex = 2; 257 int transferablesArgIndex = 2;
258 if (isLegacyTargetOriginDesignation(info[2])) { 258 if (isLegacyTargetOriginDesignation(info[2])) {
259 targetOriginArgIndex = 2; 259 targetOriginArgIndex = 2;
260 transferablesArgIndex = 1; 260 transferablesArgIndex = 1;
261 } 261 }
262 if (!SerializedScriptValue::extractTransferables(info[transferablesArgIn dex], transferablesArgIndex, portArray, arrayBufferArray, exceptionState, info.G etIsolate())) { 262 if (!SerializedScriptValue::extractTransferables(info[transferablesArgIn dex], transferablesArgIndex, portArray, arrayBufferArray, exceptionState, info.G etIsolate())) {
263 exceptionState.throwIfNeeded(); 263 exceptionState.throwIfNeeded();
264 return; 264 return;
265 } 265 }
266 } 266 }
267 TOSTRING_VOID(V8StringResource<WithUndefinedOrNullCheck>, targetOrigin, info [targetOriginArgIndex]); 267 TOSTRING_VOID(V8StringResource<TreatNullAndUndefinedAsNullString>, targetOri gin, info[targetOriginArgIndex]);
268 268
269 RefPtr<SerializedScriptValue> message = SerializedScriptValue::create(info[0 ], &portArray, &arrayBufferArray, exceptionState, info.GetIsolate()); 269 RefPtr<SerializedScriptValue> message = SerializedScriptValue::create(info[0 ], &portArray, &arrayBufferArray, exceptionState, info.GetIsolate());
270 if (exceptionState.throwIfNeeded()) 270 if (exceptionState.throwIfNeeded())
271 return; 271 return;
272 272
273 window->postMessage(message.release(), &portArray, targetOrigin, source, exc eptionState); 273 window->postMessage(message.release(), &portArray, targetOrigin, source, exc eptionState);
274 exceptionState.throwIfNeeded(); 274 exceptionState.throwIfNeeded();
275 } 275 }
276 276
277 // FIXME(fqian): returning string is cheating, and we should 277 // FIXME(fqian): returning string is cheating, and we should
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 340
341 void V8Window::showModalDialogMethodCustom(const v8::FunctionCallbackInfo<v8::Va lue>& info) 341 void V8Window::showModalDialogMethodCustom(const v8::FunctionCallbackInfo<v8::Va lue>& info)
342 { 342 {
343 LocalDOMWindow* impl = V8Window::toNative(info.Holder()); 343 LocalDOMWindow* impl = V8Window::toNative(info.Holder());
344 ExceptionState exceptionState(ExceptionState::ExecutionContext, "showModalDi alog", "Window", info.Holder(), info.GetIsolate()); 344 ExceptionState exceptionState(ExceptionState::ExecutionContext, "showModalDi alog", "Window", info.Holder(), info.GetIsolate());
345 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), impl->fram e(), exceptionState)) { 345 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), impl->fram e(), exceptionState)) {
346 exceptionState.throwIfNeeded(); 346 exceptionState.throwIfNeeded();
347 return; 347 return;
348 } 348 }
349 349
350 TOSTRING_VOID(V8StringResource<WithUndefinedOrNullCheck>, urlString, info[0] ); 350 TOSTRING_VOID(V8StringResource<TreatNullAndUndefinedAsNullString>, urlString , info[0]);
351 DialogHandler handler(info[1], ScriptState::current(info.GetIsolate())); 351 DialogHandler handler(info[1], ScriptState::current(info.GetIsolate()));
352 TOSTRING_VOID(V8StringResource<WithUndefinedOrNullCheck>, dialogFeaturesStri ng, info[2]); 352 TOSTRING_VOID(V8StringResource<TreatNullAndUndefinedAsNullString>, dialogFea turesString, info[2]);
353 353
354 impl->showModalDialog(urlString, dialogFeaturesString, callingDOMWindow(info .GetIsolate()), enteredDOMWindow(info.GetIsolate()), setUpDialog, &handler); 354 impl->showModalDialog(urlString, dialogFeaturesString, callingDOMWindow(info .GetIsolate()), enteredDOMWindow(info.GetIsolate()), setUpDialog, &handler);
355 355
356 v8SetReturnValue(info, handler.returnValue()); 356 v8SetReturnValue(info, handler.returnValue());
357 } 357 }
358 358
359 void V8Window::openMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) 359 void V8Window::openMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info)
360 { 360 {
361 LocalDOMWindow* impl = V8Window::toNative(info.Holder()); 361 LocalDOMWindow* impl = V8Window::toNative(info.Holder());
362 ExceptionState exceptionState(ExceptionState::ExecutionContext, "open", "Win dow", info.Holder(), info.GetIsolate()); 362 ExceptionState exceptionState(ExceptionState::ExecutionContext, "open", "Win dow", info.Holder(), info.GetIsolate());
363 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), impl->fram e(), exceptionState)) { 363 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), impl->fram e(), exceptionState)) {
364 exceptionState.throwIfNeeded(); 364 exceptionState.throwIfNeeded();
365 return; 365 return;
366 } 366 }
367 367
368 TOSTRING_VOID(V8StringResource<WithUndefinedOrNullCheck>, urlString, info[0] ); 368 TOSTRING_VOID(V8StringResource<TreatNullAndUndefinedAsNullString>, urlString , info[0]);
369 AtomicString frameName; 369 AtomicString frameName;
370 if (info[1]->IsUndefined() || info[1]->IsNull()) { 370 if (info[1]->IsUndefined() || info[1]->IsNull()) {
371 frameName = "_blank"; 371 frameName = "_blank";
372 } else { 372 } else {
373 TOSTRING_VOID(V8StringResource<>, frameNameResource, info[1]); 373 TOSTRING_VOID(V8StringResource<>, frameNameResource, info[1]);
374 frameName = frameNameResource; 374 frameName = frameNameResource;
375 } 375 }
376 TOSTRING_VOID(V8StringResource<WithUndefinedOrNullCheck>, windowFeaturesStri ng, info[2]); 376 TOSTRING_VOID(V8StringResource<TreatNullAndUndefinedAsNullString>, windowFea turesString, info[2]);
377 377
378 RefPtrWillBeRawPtr<LocalDOMWindow> openedWindow = impl->open(urlString, fram eName, windowFeaturesString, callingDOMWindow(info.GetIsolate()), enteredDOMWind ow(info.GetIsolate())); 378 RefPtrWillBeRawPtr<LocalDOMWindow> openedWindow = impl->open(urlString, fram eName, windowFeaturesString, callingDOMWindow(info.GetIsolate()), enteredDOMWind ow(info.GetIsolate()));
379 if (!openedWindow) 379 if (!openedWindow)
380 return; 380 return;
381 381
382 v8SetReturnValueFast(info, openedWindow.release(), impl); 382 v8SetReturnValueFast(info, openedWindow.release(), impl);
383 } 383 }
384 384
385 void V8Window::namedPropertyGetterCustom(v8::Local<v8::String> name, const v8::P ropertyCallbackInfo<v8::Value>& info) 385 void V8Window::namedPropertyGetterCustom(v8::Local<v8::String> name, const v8::P ropertyCallbackInfo<v8::Value>& info)
386 { 386 {
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 v8::Handle<v8::Context> context = toV8Context(frame, DOMWrapperWorld::curren t(isolate)); 532 v8::Handle<v8::Context> context = toV8Context(frame, DOMWrapperWorld::curren t(isolate));
533 if (context.IsEmpty()) 533 if (context.IsEmpty())
534 return v8Undefined(); 534 return v8Undefined();
535 535
536 v8::Handle<v8::Object> global = context->Global(); 536 v8::Handle<v8::Object> global = context->Global();
537 ASSERT(!global.IsEmpty()); 537 ASSERT(!global.IsEmpty());
538 return global; 538 return global;
539 } 539 }
540 540
541 } // namespace WebCore 541 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698