domwindow.h

来自「linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自Web」· C头文件 代码 · 共 313 行

H
313
字号
/* * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  */#ifndef DOMWindow_h#define DOMWindow_h#include "KURL.h"#include "PlatformString.h"#include "SecurityOrigin.h"#include <wtf/Forward.h>#include <wtf/RefCounted.h>#include <wtf/RefPtr.h>namespace WebCore {    class BarInfo;    class CSSRuleList;    class CSSStyleDeclaration;    class Console;    class DOMSelection;    class Database;    class Document;    class Element;    class EventListener;    class FloatRect;    class Frame;    class History;    class Location;    class MessagePort;    class Navigator;    class PostMessageTimer;    class Screen;    class WebKitPoint;    class Node;#if ENABLE(DOM_STORAGE)    class SessionStorage;    class Storage;#endif#if ENABLE(OFFLINE_WEB_APPLICATIONS)    class DOMApplicationCache;#endif    typedef int ExceptionCode;    class DOMWindow : public RefCounted<DOMWindow> {    public:        static PassRefPtr<DOMWindow> create(Frame* frame) { return adoptRef(new DOMWindow(frame)); }        virtual ~DOMWindow();        Frame* frame() { return m_frame; }        void disconnectFrame();        void clear();        void setSecurityOrigin(SecurityOrigin* securityOrigin) { m_securityOrigin = securityOrigin; }        SecurityOrigin* securityOrigin() const { return m_securityOrigin.get(); }        void setURL(const KURL& url) { m_url = url; }        KURL url() const { return m_url; }        static void adjustWindowRect(const FloatRect& screen, FloatRect& window, const FloatRect& pendingChanges);        // DOM Level 0        Screen* screen() const;        History* history() const;        BarInfo* locationbar() const;        BarInfo* menubar() const;        BarInfo* personalbar() const;        BarInfo* scrollbars() const;        BarInfo* statusbar() const;        BarInfo* toolbar() const;        Navigator* navigator() const;        Navigator* clientInformation() const { return navigator(); }        Location* location() const;        DOMSelection* getSelection();        Element* frameElement() const;        void focus();        void blur();        void close();        void print();        void stop();        void alert(const String& message);        bool confirm(const String& message);        String prompt(const String& message, const String& defaultValue);        bool find(const String&, bool caseSensitive, bool backwards, bool wrap, bool wholeWord, bool searchInFrames, bool showDialog) const;        bool offscreenBuffering() const;        int outerHeight() const;        int outerWidth() const;        int innerHeight() const;        int innerWidth() const;        int screenX() const;        int screenY() const;        int screenLeft() const { return screenX(); }        int screenTop() const { return screenY(); }        int scrollX() const;        int scrollY() const;        int pageXOffset() const { return scrollX(); }        int pageYOffset() const { return scrollY(); }        bool closed() const;        unsigned length() const;        String name() const;        void setName(const String&);        String status() const;        void setStatus(const String&);        String defaultStatus() const;        void setDefaultStatus(const String&);        // This attribute is an alias of defaultStatus and is necessary for legacy uses.        String defaultstatus() const { return defaultStatus(); }        void setDefaultstatus(const String& status) { setDefaultStatus(status); }        // Self referential attributes        DOMWindow* self() const;        DOMWindow* window() const { return self(); }        DOMWindow* frames() const { return self(); }        DOMWindow* opener() const;        DOMWindow* parent() const;        DOMWindow* top() const;        // DOM Level 2 AbstractView Interface        Document* document() const;        // DOM Level 2 Style Interface        PassRefPtr<CSSStyleDeclaration> getComputedStyle(Element*, const String& pseudoElt) const;        // WebKit extensions        PassRefPtr<CSSRuleList> getMatchedCSSRules(Element*, const String& pseudoElt, bool authorOnly = true) const;        double devicePixelRatio() const;        PassRefPtr<WebKitPoint> webkitConvertPointFromPageToNode(Node* node, const WebKitPoint* p) const;        PassRefPtr<WebKitPoint> webkitConvertPointFromNodeToPage(Node* node, const WebKitPoint* p) const;        #if ENABLE(DATABASE)        // HTML 5 client-side database        PassRefPtr<Database> openDatabase(const String& name, const String& version, const String& displayName, unsigned long estimatedSize, ExceptionCode&);#endif#if ENABLE(DOM_STORAGE)        // HTML 5 key/value storage        Storage* sessionStorage() const;        Storage* localStorage() const;#endif        Console* console() const;#if ENABLE(OFFLINE_WEB_APPLICATIONS)        DOMApplicationCache* applicationCache() const;#endif        void postMessage(const String& message, MessagePort*, const String& targetOrigin, DOMWindow* source, ExceptionCode&);        void postMessageTimerFired(PostMessageTimer*);        void scrollBy(int x, int y) const;        void scrollTo(int x, int y) const;        void scroll(int x, int y) const { scrollTo(x, y); }        void moveBy(float x, float y) const;        void moveTo(float x, float y) const;        void resizeBy(float x, float y) const;        void resizeTo(float width, float height) const;        EventListener* onabort() const;        void setOnabort(PassRefPtr<EventListener>);        EventListener* onblur() const;        void setOnblur(PassRefPtr<EventListener>);        EventListener* onchange() const;        void setOnchange(PassRefPtr<EventListener>);        EventListener* onclick() const;        void setOnclick(PassRefPtr<EventListener>);        EventListener* ondblclick() const;        void setOndblclick(PassRefPtr<EventListener>);        EventListener* onerror() const;        void setOnerror(PassRefPtr<EventListener>);        EventListener* onfocus() const;        void setOnfocus(PassRefPtr<EventListener>);        EventListener* onkeydown() const;        void setOnkeydown(PassRefPtr<EventListener>);        EventListener* onkeypress() const;        void setOnkeypress(PassRefPtr<EventListener>);        EventListener* onkeyup() const;        void setOnkeyup(PassRefPtr<EventListener>);        EventListener* onload() const;        void setOnload(PassRefPtr<EventListener>);        EventListener* onmousedown() const;        void setOnmousedown(PassRefPtr<EventListener>);        EventListener* onmousemove() const;        void setOnmousemove(PassRefPtr<EventListener>);        EventListener* onmouseout() const;        void setOnmouseout(PassRefPtr<EventListener>);        EventListener* onmouseover() const;        void setOnmouseover(PassRefPtr<EventListener>);        EventListener* onmouseup() const;        void setOnmouseup(PassRefPtr<EventListener>);        EventListener* onmousewheel() const;        void setOnmousewheel(PassRefPtr<EventListener>);        EventListener* onreset() const;        void setOnreset(PassRefPtr<EventListener>);        EventListener* onresize() const;        void setOnresize(PassRefPtr<EventListener>);        EventListener* onscroll() const;        void setOnscroll(PassRefPtr<EventListener>);        EventListener* onsearch() const;        void setOnsearch(PassRefPtr<EventListener>);        EventListener* onselect() const;        void setOnselect(PassRefPtr<EventListener>);        EventListener* onsubmit() const;        void setOnsubmit(PassRefPtr<EventListener>);        EventListener* onunload() const;        void setOnunload(PassRefPtr<EventListener>);        EventListener* onbeforeunload() const;        void setOnbeforeunload(PassRefPtr<EventListener>);        EventListener* onwebkitanimationstart() const;        void setOnwebkitanimationstart(PassRefPtr<EventListener>);        EventListener* onwebkitanimationiteration() const;        void setOnwebkitanimationiteration(PassRefPtr<EventListener>);        EventListener* onwebkitanimationend() const;        void setOnwebkitanimationend(PassRefPtr<EventListener>);        EventListener* onwebkittransitionend() const;        void setOnwebkittransitionend(PassRefPtr<EventListener>);        // These methods are used for GC marking. See JSDOMWindow::mark() in        // JSDOMWindowCustom.cpp.        Screen* optionalScreen() const { return m_screen.get(); }        DOMSelection* optionalSelection() const { return m_selection.get(); }        History* optionalHistory() const { return m_history.get(); }        BarInfo* optionalLocationbar() const { return m_locationbar.get(); }        BarInfo* optionalMenubar() const { return m_menubar.get(); }        BarInfo* optionalPersonalbar() const { return m_personalbar.get(); }        BarInfo* optionalScrollbars() const { return m_scrollbars.get(); }        BarInfo* optionalStatusbar() const { return m_statusbar.get(); }        BarInfo* optionalToolbar() const { return m_toolbar.get(); }        Console* optionalConsole() const { return m_console.get(); }        Navigator* optionalNavigator() const { return m_navigator.get(); }        Location* optionalLocation() const { return m_location.get(); }#if ENABLE(DOM_STORAGE)        Storage* optionalSessionStorage() const { return m_sessionStorage.get(); }        Storage* optionalLocalStorage() const { return m_sessionStorage.get(); }#endif#if ENABLE(OFFLINE_WEB_APPLICATIONS)        DOMApplicationCache* optionalApplicationCache() const { return m_applicationCache.get(); }#endif    private:        DOMWindow(Frame*);        void setInlineEventListenerForType(const AtomicString& eventType, PassRefPtr<EventListener>);        EventListener* inlineEventListenerForType(const AtomicString& eventType) const;        RefPtr<SecurityOrigin> m_securityOrigin;        KURL m_url;        Frame* m_frame;        mutable RefPtr<Screen> m_screen;        mutable RefPtr<DOMSelection> m_selection;        mutable RefPtr<History> m_history;        mutable RefPtr<BarInfo> m_locationbar;        mutable RefPtr<BarInfo> m_menubar;        mutable RefPtr<BarInfo> m_personalbar;        mutable RefPtr<BarInfo> m_scrollbars;        mutable RefPtr<BarInfo> m_statusbar;        mutable RefPtr<BarInfo> m_toolbar;        mutable RefPtr<Console> m_console;        mutable RefPtr<Navigator> m_navigator;        mutable RefPtr<Location> m_location;#if ENABLE(DOM_STORAGE)        mutable RefPtr<Storage> m_sessionStorage;        mutable RefPtr<Storage> m_localStorage;#endif#if ENABLE(OFFLINE_WEB_APPLICATIONS)        mutable RefPtr<DOMApplicationCache> m_applicationCache;#endif    };} // namespace WebCore#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?