| Index: third_party/WebKit/Source/bindings/core/v8/ScriptController.h
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptController.h b/third_party/WebKit/Source/bindings/core/v8/ScriptController.h
|
| index b161c103497a133bfcffc96929407a75e02c9fe0..cac399914f5e699af516b2c6ece6d775ba661866 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/ScriptController.h
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptController.h
|
| @@ -44,10 +44,15 @@
|
| #include "wtf/text/TextPosition.h"
|
| #include <v8.h>
|
|
|
| +namespace WTF {
|
| +class AtomicString;
|
| +} // namespace WTF
|
| +
|
| namespace blink {
|
|
|
| class DOMWrapperWorld;
|
| class Element;
|
| +class HTMLDocument;
|
| class KURL;
|
| class ScriptSourceCode;
|
| class SecurityOrigin;
|
| @@ -60,8 +65,13 @@ enum ReasonForCallingCanExecuteScripts {
|
| NotAboutToExecuteScript
|
| };
|
|
|
| -class CORE_EXPORT ScriptController final
|
| - : public GarbageCollected<ScriptController> {
|
| +// LocalWindowProxyManager is just a template specialization for the local
|
| +// version of a WindowProxyManager. It contains only the core logic of mapping a
|
| +// DOMWrapperWorld to its corresponding WindowProxy.
|
| +// ScriptController adds functionality for executing scripts and other
|
| +// LocalWindowProxy-specific management logic, such as updating the security
|
| +// origin.
|
| +class CORE_EXPORT ScriptController final : public LocalWindowProxyManager {
|
| WTF_MAKE_NONCOPYABLE(ScriptController);
|
|
|
| public:
|
| @@ -70,16 +80,10 @@ class CORE_EXPORT ScriptController final
|
| DoNotExecuteScriptWhenScriptsDisabled
|
| };
|
|
|
| - static ScriptController* create(LocalFrame* frame) {
|
| + static ScriptController* create(LocalFrame& frame) {
|
| return new ScriptController(frame);
|
| }
|
|
|
| - DECLARE_TRACE();
|
| -
|
| - // This returns an initialized window proxy. (If the window proxy is not
|
| - // yet initialized, it's implicitly initialized at the first access.)
|
| - LocalWindowProxy* windowProxy(DOMWrapperWorld&);
|
| -
|
| // Evaluate JavaScript in the main world.
|
| void executeScriptInMainWorld(
|
| const String&,
|
| @@ -123,12 +127,15 @@ class CORE_EXPORT ScriptController final
|
|
|
| TextPosition eventHandlerPosition() const;
|
|
|
| - void clearWindowProxy();
|
| - void updateDocument();
|
| + void namedItemAdded(HTMLDocument*, const AtomicString&);
|
| + void namedItemRemoved(HTMLDocument*, const AtomicString&);
|
|
|
| + void clearForClose();
|
| + void clearForNavigation();
|
| + void updateDocument();
|
| void updateSecurityOrigin(SecurityOrigin*);
|
|
|
| - void clearForClose();
|
| + void initializeMainWorld();
|
|
|
| // Registers a v8 extension to be available on webpages. Will only
|
| // affect v8 contexts initialized after this call. Takes ownership of
|
| @@ -136,22 +143,12 @@ class CORE_EXPORT ScriptController final
|
| static void registerExtensionIfNeeded(v8::Extension*);
|
| static V8Extensions& registeredExtensions();
|
|
|
| - v8::Isolate* isolate() const { return m_windowProxyManager->isolate(); }
|
| -
|
| - LocalWindowProxyManager* getWindowProxyManager() const {
|
| - return m_windowProxyManager.get();
|
| - }
|
| -
|
| private:
|
| - explicit ScriptController(LocalFrame*);
|
| -
|
| - LocalFrame* frame() const { return m_windowProxyManager->frame(); }
|
| + explicit ScriptController(LocalFrame&);
|
|
|
| v8::Local<v8::Value> evaluateScriptInMainWorld(const ScriptSourceCode&,
|
| AccessControlStatus,
|
| ExecuteScriptPolicy);
|
| -
|
| - Member<LocalWindowProxyManager> m_windowProxyManager;
|
| };
|
|
|
| } // namespace blink
|
|
|