OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * Copyright (C) 2014 Opera Software ASA. All rights reserved. | 3 * Copyright (C) 2014 Opera Software ASA. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 | 460 |
461 return v8::Local<v8::Object>::Cast(v8value); | 461 return v8::Local<v8::Object>::Cast(v8value); |
462 } | 462 } |
463 | 463 |
464 WebString WebPluginContainerImpl::executeScriptURL(const WebURL& url, | 464 WebString WebPluginContainerImpl::executeScriptURL(const WebURL& url, |
465 bool popupsAllowed) { | 465 bool popupsAllowed) { |
466 LocalFrame* frame = m_element->document().frame(); | 466 LocalFrame* frame = m_element->document().frame(); |
467 if (!frame) | 467 if (!frame) |
468 return WebString(); | 468 return WebString(); |
469 | 469 |
470 if (!m_element->document().contentSecurityPolicy()->allowJavaScriptURLs( | |
471 m_element, m_element->document().url(), OrdinalNumber())) { | |
472 return WebString(); | |
473 } | |
474 | |
475 const KURL& kurl = url; | 470 const KURL& kurl = url; |
476 DCHECK(kurl.protocolIs("javascript")); | 471 DCHECK(kurl.protocolIs("javascript")); |
477 | 472 |
478 String script = decodeURLEscapeSequences( | 473 String script = decodeURLEscapeSequences( |
479 kurl.getString().substring(strlen("javascript:"))); | 474 kurl.getString().substring(strlen("javascript:"))); |
480 | 475 |
| 476 if (!m_element->document().contentSecurityPolicy()->allowJavaScriptURLs( |
| 477 m_element, script, m_element->document().url(), OrdinalNumber())) { |
| 478 return WebString(); |
| 479 } |
| 480 |
481 UserGestureIndicator gestureIndicator( | 481 UserGestureIndicator gestureIndicator( |
482 popupsAllowed ? DocumentUserGestureToken::create( | 482 popupsAllowed ? DocumentUserGestureToken::create( |
483 frame->document(), UserGestureToken::NewGesture) | 483 frame->document(), UserGestureToken::NewGesture) |
484 : nullptr); | 484 : nullptr); |
485 v8::HandleScope handleScope(toIsolate(frame)); | 485 v8::HandleScope handleScope(toIsolate(frame)); |
486 v8::Local<v8::Value> result = | 486 v8::Local<v8::Value> result = |
487 frame->script().executeScriptInMainWorldAndReturnValue( | 487 frame->script().executeScriptInMainWorldAndReturnValue( |
488 ScriptSourceCode(script)); | 488 ScriptSourceCode(script)); |
489 | 489 |
490 // Failure is reported as a null string. | 490 // Failure is reported as a null string. |
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 // frame view. | 985 // frame view. |
986 computeClipRectsForPlugin(m_element, windowRect, clipRect, unobscuredRect); | 986 computeClipRectsForPlugin(m_element, windowRect, clipRect, unobscuredRect); |
987 } | 987 } |
988 getPluginOcclusions(m_element, this->parent(), frameRect(), cutOutRects); | 988 getPluginOcclusions(m_element, this->parent(), frameRect(), cutOutRects); |
989 // Convert to the plugin position. | 989 // Convert to the plugin position. |
990 for (size_t i = 0; i < cutOutRects.size(); i++) | 990 for (size_t i = 0; i < cutOutRects.size(); i++) |
991 cutOutRects[i].move(-frameRect().x(), -frameRect().y()); | 991 cutOutRects[i].move(-frameRect().x(), -frameRect().y()); |
992 } | 992 } |
993 | 993 |
994 } // namespace blink | 994 } // namespace blink |
OLD | NEW |