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

Side by Side Diff: Source/bindings/core/v8/ScriptController.cpp

Issue 516273002: Move plugin placeholder style to CSS, and allow it to bypass main world CSP. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: add the actual .css file Created 6 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) 2008, 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2008, 2009 Google Inc. All rights reserved.
3 * Copyright (C) 2009 Apple Inc. All rights reserved. 3 * Copyright (C) 2009 Apple Inc. All rights reserved.
4 * Copyright (C) 2014 Opera Software ASA. All rights reserved. 4 * Copyright (C) 2014 Opera Software ASA. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are 7 * modification, are permitted provided that the following conditions are
8 * met: 8 * met:
9 * 9 *
10 * * Redistributions of source code must retain the above copyright 10 * * Redistributions of source code must retain the above copyright
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 v8::Isolate* isolate = toIsolate(frame); 89 v8::Isolate* isolate = toIsolate(frame);
90 return !isolate->InContext() || BindingSecurity::shouldAllowAccessToFrame(is olate, frame); 90 return !isolate->InContext() || BindingSecurity::shouldAllowAccessToFrame(is olate, frame);
91 } 91 }
92 92
93 ScriptController::ScriptController(LocalFrame* frame) 93 ScriptController::ScriptController(LocalFrame* frame)
94 : m_frame(frame) 94 : m_frame(frame)
95 , m_sourceURL(0) 95 , m_sourceURL(0)
96 , m_isolate(v8::Isolate::GetCurrent()) 96 , m_isolate(v8::Isolate::GetCurrent())
97 , m_windowProxy(WindowProxy::create(frame, DOMWrapperWorld::mainWorld(), m_i solate)) 97 , m_windowProxy(WindowProxy::create(frame, DOMWrapperWorld::mainWorld(), m_i solate))
98 , m_windowScriptNPObject(0) 98 , m_windowScriptNPObject(0)
99 , m_bypassMainWorldCSP(false)
99 { 100 {
100 } 101 }
101 102
102 ScriptController::~ScriptController() 103 ScriptController::~ScriptController()
103 { 104 {
104 // WindowProxy::clearForClose() must be invoked before destruction starts. 105 // WindowProxy::clearForClose() must be invoked before destruction starts.
105 ASSERT(!m_windowProxy->isContextInitialized()); 106 ASSERT(!m_windowProxy->isContextInitialized());
106 } 107 }
107 108
108 void ScriptController::clearScriptObjects() 109 void ScriptController::clearScriptObjects()
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 m_isolatedWorlds.set(world.worldId(), isolatedWorldWindowProxy.relea se()); 234 m_isolatedWorlds.set(world.worldId(), isolatedWorldWindowProxy.relea se());
234 } 235 }
235 } 236 }
236 if (!windowProxy->isContextInitialized() && windowProxy->initializeIfNeeded( ) && world.isMainWorld()) 237 if (!windowProxy->isContextInitialized() && windowProxy->initializeIfNeeded( ) && world.isMainWorld())
237 m_frame->loader().dispatchDidClearWindowObjectInMainWorld(); 238 m_frame->loader().dispatchDidClearWindowObjectInMainWorld();
238 return windowProxy; 239 return windowProxy;
239 } 240 }
240 241
241 bool ScriptController::shouldBypassMainWorldCSP() 242 bool ScriptController::shouldBypassMainWorldCSP()
242 { 243 {
244 if (m_bypassMainWorldCSP)
245 return true;
246
243 v8::Handle<v8::Context> context = m_isolate->GetCurrentContext(); 247 v8::Handle<v8::Context> context = m_isolate->GetCurrentContext();
244 if (context.IsEmpty() || !toDOMWindow(context)) 248 if (context.IsEmpty() || !toDOMWindow(context))
245 return false; 249 return false;
246 DOMWrapperWorld& world = DOMWrapperWorld::current(m_isolate); 250 DOMWrapperWorld& world = DOMWrapperWorld::current(m_isolate);
247 return world.isIsolatedWorld() ? world.isolatedWorldHasContentSecurityPolicy () : false; 251 return world.isIsolatedWorld() ? world.isolatedWorldHasContentSecurityPolicy () : false;
248 } 252 }
249 253
250 TextPosition ScriptController::eventHandlerPosition() const 254 TextPosition ScriptController::eventHandlerPosition() const
251 { 255 {
252 ScriptableDocumentParser* parser = m_frame->document()->scriptableDocumentPa rser(); 256 ScriptableDocumentParser* parser = m_frame->document()->scriptableDocumentPa rser();
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 resultArray->Set(i, evaluationResult); 637 resultArray->Set(i, evaluationResult);
634 } 638 }
635 639
636 if (results) { 640 if (results) {
637 for (size_t i = 0; i < resultArray->Length(); ++i) 641 for (size_t i = 0; i < resultArray->Length(); ++i)
638 results->append(handleScope.Escape(resultArray->Get(i))); 642 results->append(handleScope.Escape(resultArray->Get(i)));
639 } 643 }
640 } 644 }
641 645
642 } // namespace blink 646 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698