Changeset 12791 in webkit


Ignore:
Timestamp:
Feb 13, 2006 8:19:40 PM (18 years ago)
Author:
darin
Message:

WebCore:

Reviewed by Maciej.

  • move pointer from frame to page here from WebKit
  • WebCore.xcodeproj/project.pbxproj: Added PageMac.h.
  • bridge/mac/PageMac.h: Added.
  • bridge/mac/MacFrame.h: Added a page parameter to the constructor.
  • bridge/mac/MacFrame.mm: (WebCore::MacFrame::MacFrame): Pass the page and renderer to the Frame constructor. Moved the call to Cache::init up into Frame, and got rid of the call to Frame::init since that's now handled by the constructor. Also put the code to create the browser extension object here. (WebCore::MacFrame::submitForm): Update for new method name. (WebCore::MacFrame::createFrame): Ditto. (WebCore::MacFrame::sendContextMenuEvent): Update since m_doc is a RefPtr.
  • bridge/mac/WebCoreFrameBridge.h: Changed parameters on init methods. Renamed the part method to impl. Added a page method.
  • bridge/mac/WebCoreFrameBridge.mm: (frameHasSelection): Change use of part method to impl. (-[WebCoreFrameBridge appendChild:]): Use m_frame directly instead of calling part method. (-[WebCoreFrameBridge removeChild:]): Ditto. (-[WebCoreFrameBridge initMainFrameWithPage:]): Added. Now does the first-time initialization only here and create a frame for a main frame. (-[WebCoreFrameBridge initSubframeWithRenderer:]): Added. Doesn't do the first-time initialization and creates a frame for a subframe. (-[WebCoreFrameBridge page]): Added. (-[WebCoreFrameBridge setOpener:]): Change to use impl method instead of part. (-[WebCoreFrameBridge executionContextForView:]): Ditto. (-[WebCoreFrameBridge impl]): Added.
  • bridge/mac/WebCorePageBridge.h: Removed init method and added setMainFrame: method and impl method.
  • bridge/mac/WebCorePageBridge.mm: (-[WebCorePageBridge init]): Changed to create a PageMac. (-[WebCorePageBridge setMainFrame:]): Added. (-[WebCorePageBridge impl]): Added.
  • bridge/mac/BrowserExtensionMac.mm: (WebCore::BrowserExtensionMac::createNewWindow):
  • kwq/KWQAccObject.mm: (-[KWQAccObject rendererForView:]):
  • kwq/KWQComboBox.mm: (-[KWQPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:]):
  • kwq/KWQFileButton.mm: (KWQFileButton::focusPolicy):
  • kwq/KWQSlider.mm: (QSlider::focusPolicy):
  • kwq/KWQTextArea.mm: (-[KWQTextAreaTextView _isResizableByUser]): (-[KWQTextAreaTextView _trackResizeFromMouseDown:]): Change methods to get from bridge back to objects to be named "impl". The old one was named "part".
  • page/Frame.h: Added Page and RenderPart parameter to constructor. Added a page function. Removed the createBrowserExtension function.
  • page/Frame.cpp: (WebCore::parentFromOwnerRenderer): Added. Helper for constructor. (WebCore::Frame::Frame): Moved all the code from init into here. Also change to set the parent right from the start. (WebCore::Frame::stopLoading): Change since m_doc is now a RefPtr. (WebCore::Frame::clear): Ditto. (WebCore::Frame::document): Ditto. (WebCore::Frame::setDocument): Ditto. (WebCore::Frame::begin): Ditto. (WebCore::Frame::gotoAnchor): Ditto. (WebCore::Frame::typingStyle): Change since m_typingStyle is now a RefPtr. (WebCore::Frame::setTypingStyle): Ditto. (WebCore::Frame::clearTypingStyle): Ditto. (WebCore::Frame::isFrameSet): Change since m_doc is now a RefPtr. (WebCore::Frame::page): Added.
  • page/FramePrivate.h: Changed initialization to use member-initialization syntax. Removed unused m_frames. Changed m_doc and m_typingStyle to use RefPtr. Added an m_frame.
  • page/Page.h: Made destructor virtual so we could have a Mac derived class. Added a setMainFrame function and removed the mainFrame parameter from the constructor.
  • page/Page.cpp: (WebCore::Page::Page): Removed the mainFrame parameter. (WebCore::Page::setMainFrame): Added.

WebKit:

Reviewed by Maciej.

  • move pointer from frame to page over to WebCore
  • WebCoreSupport/WebPageBridge.m: (-[WebPageBridge initWithMainFrameName:webView:frameView:]): Call super init to create the page before creating the main frame and calling setMainFrame: with it.
  • WebCoreSupport/WebFrameBridge.h: Remove page pointer, and change init function parameters.
  • WebCoreSupport/WebFrameBridge.m: (-[WebFrameBridge initMainFrameWithPage:frameName:view:]): New function that is used only for the main frame. Passes the page over to the other side of the bridge. (-[WebFrameBridge initSubframeWithRenderer:frameName:view:]): New function that is used only for subframes. Passes the renderer over to the other side of the bridge. (-[WebFrameBridge mainFrame]): (-[WebFrameBridge webView]): (-[WebFrameBridge createWindowWithURL:frameName:]): (-[WebFrameBridge showWindow]): (-[WebFrameBridge areToolbarsVisible]): (-[WebFrameBridge setToolbarsVisible:]): (-[WebFrameBridge isStatusbarVisible]): (-[WebFrameBridge setStatusbarVisible:]): (-[WebFrameBridge setWindowFrame:]): (-[WebFrameBridge windowFrame]): (-[WebFrameBridge setWindowContentRect:]): (-[WebFrameBridge windowContentRect]): (-[WebFrameBridge setWindowIsResizable:]): (-[WebFrameBridge windowIsResizable]): (-[WebFrameBridge firstResponder]): (-[WebFrameBridge makeFirstResponder:]): (-[WebFrameBridge closeWindowSoon]): (-[WebFrameBridge runJavaScriptAlertPanelWithMessage:]): (-[WebFrameBridge runJavaScriptConfirmPanelWithMessage:]): (-[WebFrameBridge canRunBeforeUnloadConfirmPanel]): (-[WebFrameBridge runBeforeUnloadConfirmPanelWithMessage:]): (-[WebFrameBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]): (-[WebFrameBridge addMessageToConsole:]): (-[WebFrameBridge runOpenPanelForFileButtonWithResultListener:]): (-[WebFrameBridge setStatusText:]): (-[WebFrameBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): (-[WebFrameBridge focusWindow]): (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]): (-[WebFrameBridge userAgentForURL:]): (-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]): (-[WebFrameBridge previousKeyViewOutsideWebFrameViews]): (-[WebFrameBridge defersLoading]): (-[WebFrameBridge setDefersLoading:]): (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): (-[WebFrameBridge _preferences]): (-[WebFrameBridge selectWordBeforeMenuEvent]): (-[WebFrameBridge historyLength]): (-[WebFrameBridge canGoBackOrForward:]): (-[WebFrameBridge goBackOrForward:]): (-[WebFrameBridge print]): (-[WebFrameBridge pollForAppletInView:]): (-[WebFrameBridge respondToChangedContents]): (-[WebFrameBridge respondToChangedSelection]): (-[WebFrameBridge undoManager]): (-[WebFrameBridge issueCutCommand]): (-[WebFrameBridge issueCopyCommand]): (-[WebFrameBridge issuePasteCommand]): (-[WebFrameBridge issuePasteAndMatchStyleCommand]): (-[WebFrameBridge canPaste]): (-[WebFrameBridge overrideMediaType]): (-[WebFrameBridge isEditable]): (-[WebFrameBridge shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]): (-[WebFrameBridge shouldBeginEditing:]): (-[WebFrameBridge shouldEndEditing:]): (-[WebFrameBridge windowObjectCleared]): (-[WebFrameBridge spellCheckerDocumentTag]): (-[WebFrameBridge isContinuousSpellCheckingEnabled]): (-[WebFrameBridge didFirstLayout]): (-[WebFrameBridge dashboardRegionsChanged:]): (-[WebFrameBridge createModalDialogWithURL:]): (-[WebFrameBridge canRunModal]): (-[WebFrameBridge runModal]): Change all calls to [_page webView] to use [self webView] instead.
Location:
trunk
Files:
1 added
23 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r12789 r12791  
    1 2006-02-07  David Harrison  <harrison@apple.com>
     12006-02-13  Darin Adler  <darin@apple.com>
     2
     3        Reviewed by Maciej.
     4
     5        - move pointer from frame to page here from WebKit
     6
     7        * WebCore.xcodeproj/project.pbxproj: Added PageMac.h.
     8
     9        * bridge/mac/PageMac.h: Added.
     10
     11        * bridge/mac/MacFrame.h: Added a page parameter to the constructor.
     12        * bridge/mac/MacFrame.mm:
     13        (WebCore::MacFrame::MacFrame): Pass the page and renderer to the Frame constructor.
     14        Moved the call to Cache::init up into Frame, and got rid of the call to Frame::init
     15        since that's now handled by the constructor. Also put the code to create the
     16        browser extension object here.
     17        (WebCore::MacFrame::submitForm): Update for new method name.
     18        (WebCore::MacFrame::createFrame): Ditto.
     19        (WebCore::MacFrame::sendContextMenuEvent): Update since m_doc is a RefPtr.
     20
     21        * bridge/mac/WebCoreFrameBridge.h: Changed parameters on init methods. Renamed
     22        the part method to impl. Added a page method.
     23        * bridge/mac/WebCoreFrameBridge.mm:
     24        (frameHasSelection): Change use of part method to impl.
     25        (-[WebCoreFrameBridge appendChild:]): Use m_frame directly instead of calling part method.
     26        (-[WebCoreFrameBridge removeChild:]): Ditto.
     27        (-[WebCoreFrameBridge initMainFrameWithPage:]): Added. Now does the first-time initialization
     28        only here and create a frame for a main frame.
     29        (-[WebCoreFrameBridge initSubframeWithRenderer:]): Added. Doesn't do the first-time initialization
     30        and creates a frame for a subframe.
     31        (-[WebCoreFrameBridge page]): Added.
     32        (-[WebCoreFrameBridge setOpener:]): Change to use impl method instead of part.
     33        (-[WebCoreFrameBridge executionContextForView:]): Ditto.
     34        (-[WebCoreFrameBridge impl]): Added.
     35
     36        * bridge/mac/WebCorePageBridge.h: Removed init method and added setMainFrame: method and impl method.
     37        * bridge/mac/WebCorePageBridge.mm:
     38        (-[WebCorePageBridge init]): Changed to create a PageMac.
     39        (-[WebCorePageBridge setMainFrame:]): Added.
     40        (-[WebCorePageBridge impl]): Added.
     41
     42        * bridge/mac/BrowserExtensionMac.mm:
     43        (WebCore::BrowserExtensionMac::createNewWindow):
     44        * kwq/KWQAccObject.mm:
     45        (-[KWQAccObject rendererForView:]):
     46        * kwq/KWQComboBox.mm:
     47        (-[KWQPopUpButtonCell trackMouse:inRect:ofView:untilMouseUp:]):
     48        * kwq/KWQFileButton.mm:
     49        (KWQFileButton::focusPolicy):
     50        * kwq/KWQSlider.mm:
     51        (QSlider::focusPolicy):
     52        * kwq/KWQTextArea.mm:
     53        (-[KWQTextAreaTextView _isResizableByUser]):
     54        (-[KWQTextAreaTextView _trackResizeFromMouseDown:]):
     55        Change methods to get from bridge back to objects to be named "impl".
     56        The old one was named "part".
     57
     58        * page/Frame.h: Added Page and RenderPart parameter to constructor.
     59        Added a page function. Removed the createBrowserExtension function.
     60        * page/Frame.cpp:
     61        (WebCore::parentFromOwnerRenderer): Added. Helper for constructor.
     62        (WebCore::Frame::Frame): Moved all the code from init into here. Also change
     63        to set the parent right from the start.
     64        (WebCore::Frame::stopLoading): Change since m_doc is now a RefPtr.
     65        (WebCore::Frame::clear): Ditto.
     66        (WebCore::Frame::document): Ditto.
     67        (WebCore::Frame::setDocument): Ditto.
     68        (WebCore::Frame::begin): Ditto.
     69        (WebCore::Frame::gotoAnchor): Ditto.
     70        (WebCore::Frame::typingStyle): Change since m_typingStyle is now a RefPtr.
     71        (WebCore::Frame::setTypingStyle): Ditto.
     72        (WebCore::Frame::clearTypingStyle): Ditto.
     73        (WebCore::Frame::isFrameSet): Change since m_doc is now a RefPtr.
     74        (WebCore::Frame::page): Added.
     75
     76        * page/FramePrivate.h: Changed initialization to use member-initialization
     77        syntax. Removed unused m_frames. Changed m_doc and m_typingStyle to use
     78        RefPtr. Added an m_frame.
     79
     80        * page/Page.h: Made destructor virtual so we could have a Mac derived class.
     81        Added a setMainFrame function and removed the mainFrame parameter from the constructor.
     82        * page/Page.cpp:
     83        (WebCore::Page::Page): Removed the mainFrame parameter.
     84        (WebCore::Page::setMainFrame): Added.
     85
     862006-02-13  David Harrison  <harrison@apple.com>
    287
    388        Reviewed by Justin.
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r12782 r12791  
    126126                93309EA4099EB78C0056E581 /* Timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93309EA1099EB78C0056E581 /* Timer.cpp */; };
    127127                937A36A7097E2E3200E4EE2F /* UserAgentStyleSheets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 937A36A6097E2E3200E4EE2F /* UserAgentStyleSheets.cpp */; };
     128                937D809A09A063330092A01E /* PageMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 937D809909A063330092A01E /* PageMac.h */; };
    128129                9380F47309A11AB4001FDB34 /* Widget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9380F47109A11AB4001FDB34 /* Widget.cpp */; };
    129130                9380F47409A11AB4001FDB34 /* Widget.h in Headers */ = {isa = PBXBuildFile; fileRef = 9380F47209A11AB4001FDB34 /* Widget.h */; };
     
    12511252                9378D9FA07640A46004B97BF /* markup.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; name = markup.h; path = editing/markup.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    12521253                937A36A6097E2E3200E4EE2F /* UserAgentStyleSheets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UserAgentStyleSheets.cpp; sourceTree = "<group>"; };
     1254                937D809909A063330092A01E /* PageMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageMac.h; sourceTree = "<group>"; };
    12531255                9380F47109A11AB4001FDB34 /* Widget.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Widget.cpp; path = platform/Widget.cpp; sourceTree = "<group>"; };
    12541256                9380F47209A11AB4001FDB34 /* Widget.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Widget.h; path = platform/Widget.h; sourceTree = "<group>"; };
     
    24172419                                654EC610097778F500DAB52C /* WebCoreFrameBridge.mm */,
    24182420                                65BF02380974819000C43196 /* KWQKHTMLView.cpp */,
     2421                                937D809909A063330092A01E /* PageMac.h */,
    24192422                                65BF023B0974819000C43196 /* MacFrame.h */,
    24202423                                65BF023C0974819000C43196 /* MacFrame.mm */,
     
    43964399                                6550B6A4099DF0270090D781 /* EditingTextImpl.h in Headers */,
    43974400                                6550B6A6099DF0270090D781 /* TextImpl.h in Headers */,
     4401                                937D809A09A063330092A01E /* PageMac.h in Headers */,
    43984402                                9380F47409A11AB4001FDB34 /* Widget.h in Headers */,
    43994403                        );
  • trunk/WebCore/bridge/mac/BrowserExtensionMac.mm

    r12768 r12791  
    104104
    105105            if (partResult)
    106                 *partResult = [bridge part];
     106                *partResult = [bridge impl];
    107107
    108108            return;
     
    119119        return;
    120120   
    121     if ([bridge part])
    122         [bridge part]->tree()->setName(urlArgs.frameName);
     121    if ([bridge impl])
     122        [bridge impl]->tree()->setName(urlArgs.frameName);
    123123   
    124124    if (partResult)
    125         *partResult = [bridge part];
     125        *partResult = [bridge impl];
    126126   
    127127    [bridge setToolbarsVisible:winArgs.toolBarVisible || winArgs.locationBarVisible];
  • trunk/WebCore/bridge/mac/MacFrame.h

    r12782 r12791  
    3535#include "text_affinity.h"
    3636#include <kxmlcore/HashSet.h>
    37 #include "BrowserExtensionMac.h"
    3837
    3938#import <CoreFoundation/CoreFoundation.h>
     
    119118{
    120119public:
    121     MacFrame(RenderPart*);
     120    MacFrame(Page*, RenderPart*);
    122121    ~MacFrame();
    123122   
     
    182181
    183182    virtual void createEmptyDocument();
    184 
    185     virtual BrowserExtension* createBrowserExtension() { return new BrowserExtensionMac(this); }
    186183
    187184    static WebCoreFrameBridge *bridgeForWidget(const Widget *);
  • trunk/WebCore/bridge/mac/MacFrame.mm

    r12782 r12791  
    2727#import "MacFrame.h"
    2828
     29#import "BrowserExtensionMac.h"
    2930#import "Cache.h"
    3031#import "DOMInternal.h"
     
    130131}
    131132
    132 MacFrame::MacFrame(RenderPart* ownerRenderer)
    133     : _bridge(nil)
     133MacFrame::MacFrame(Page* page, RenderPart* ownerRenderer)
     134    : Frame(page, ownerRenderer)
     135    , _bridge(nil)
    134136    , _started(this, SIGNAL(started(KIO::Job *)))
    135137    , _completed(this, SIGNAL(completed()))
     
    148150    , _dragClipboard(0)
    149151{
    150     // Must init the cache before connecting to any signals
    151     Cache::init();
    152 
    153     // The widget is made outside this class in our case.
    154     Frame::init(0, ownerRenderer);
    155 
    156152    mutableInstances().prepend(this);
     153
     154    d->m_extension = new BrowserExtensionMac(this);
    157155}
    158156
     
    523521    // needed any more now that we reset _submittedFormURL on each mouse or key down event.
    524522    WebCoreFrameBridge *target = args.frameName.isEmpty() ? _bridge : [_bridge findFrameNamed:args.frameName.getNSString()];
    525     Frame *targetPart = [target part];
     523    Frame *targetPart = [target impl];
    526524    bool willReplaceThisFrame = false;
    527525    for (Frame *p = this; p; p = p->tree()->parent()) {
     
    636634                                                         marginWidth:marginWidth
    637635                                                        marginHeight:marginHeight];
    638     return [childBridge part];
     636    return [childBridge impl];
    639637
    640638    KWQ_UNBLOCK_EXCEPTIONS;
     
    22372235bool MacFrame::sendContextMenuEvent(NSEvent *event)
    22382236{
    2239     DocumentImpl *doc = d->m_doc;
    2240     FrameView *v = d->m_view;
     2237    DocumentImpl* doc = d->m_doc.get();
     2238    FrameView* v = d->m_view;
    22412239    if (!doc || !v) {
    22422240        return false;
  • trunk/WebCore/bridge/mac/WebCoreFrameBridge.h

    r12683 r12791  
    5656@class DOMHTMLElement;
    5757@class DOMHTMLInputElement;
     58@class DOMHTMLTextAreaElement;
    5859@class DOMNode;
    5960@class DOMRange;
    60 @class DOMHTMLTextAreaElement;
     61@class WebCorePageBridge;
    6162@class WebCoreSettings;
    6263@class WebScriptObject;
     
    191192+ (WebCoreFrameBridge *)bridgeForDOMDocument:(DOMDocument *)document;
    192193
    193 - (id)initWithRenderer:(WebCoreRenderPart *)renderer;
     194- (id)initMainFrameWithPage:(WebCorePageBridge *)page;
     195- (id)initSubframeWithRenderer:(WebCoreRenderPart *)renderer;
    194196
    195197+ (NSArray *)supportedMIMETypes;
     
    202204- (NSString *)generateFrameName;
    203205
    204 - (WebCoreMacFrame *)part;
    205 
    206 - (void)setParent:(WebCoreFrameBridge *)parent;
     206- (WebCorePageBridge *)page;
     207
    207208- (WebCoreFrameBridge *)parent;
    208209
     
    675676@end
    676677
     678// One method for internal use within WebCore itself.
     679// Could move this to another header, but would be a pity to create an entire header just for that.
     680
     681@interface WebCoreFrameBridge (WebCoreInternalUse)
     682- (WebCoreMacFrame*)impl;
     683@end
     684
     685// Protocols that make up part of the interaces above.
     686
    677687@protocol WebCoreRenderTreeCopier <NSObject>
    678688- (NSObject *)nodeWithName:(NSString *)name position:(NSPoint)p rect:(NSRect)rect view:(NSView *)view children:(NSArray *)children;
  • trunk/WebCore/bridge/mac/WebCoreFrameBridge.mm

    r12782 r12791  
    3131#import "DOMInternal.h"
    3232#import "DocumentTypeImpl.h"
     33#import "FrameTree.h"
    3334#import "FrameView.h"
    3435#import "HTMLFormElementImpl.h"
     
    4849#import "KWQView.h"
    4950#import "MacFrame.h"
    50 #import "FrameTree.h"
    5151#import "NodeImpl.h"
     52#import "PageMac.h"
    5253#import "SelectionController.h"
    5354#import "WebCoreFrameNamespaces.h"
     55#import "WebCorePageBridge.h"
    5456#import "WebCoreSettings.h"
    5557#import "WebCoreTextRendererFactory.h"
     
    6668#import "html_imageimpl.h"
    6769#import "htmlediting.h"
     70#import "htmlnames.h"
    6871#import "kjs_proxy.h"
    6972#import "kjs_window.h"
     
    8285#import "visible_units.h"
    8386#import "xml_tokenizer.h"
    84 #import "htmlnames.h"
     87#import <JavaScriptCore/date_object.h>
    8588#import <JavaScriptCore/interpreter.h>
    8689#import <JavaScriptCore/jni_jsobject.h>
    8790#import <JavaScriptCore/npruntime.h>
    8891#import <JavaScriptCore/object.h>
    89 #import <JavaScriptCore/date_object.h>
    9092#import <JavaScriptCore/property_map.h>
    9193#import <JavaScriptCore/runtime_root.h>
     
    179181        return NO;
    180182   
    181     Frame *frame = [bridge part];
     183    Frame *frame = [bridge impl];
    182184    if (!frame)
    183185        return NO;
     
    334336- (void)appendChild:(WebCoreFrameBridge *)child
    335337{
    336     m_frame->tree()->appendChild(adoptRef([child part]));
     338    m_frame->tree()->appendChild(adoptRef(child->m_frame));
    337339}
    338340
    339341- (void)removeChild:(WebCoreFrameBridge *)child
    340342{
    341     m_frame->tree()->removeChild([child part]);
     343    m_frame->tree()->removeChild(child->m_frame);
    342344}
    343345
     
    535537}
    536538
    537 - (id)init
    538 {
    539     return [self initWithRenderer:0];
    540 }
    541 
    542 - (id)initWithRenderer:(WebCoreRenderPart *)renderer
    543 {
     539- (id)initMainFrameWithPage:(WebCorePageBridge *)page
     540{
     541    if (!initializedKJS) {
     542        mainThread = pthread_self();
     543        RootObject::setFindRootObjectForNativeHandleFunction(rootForView);
     544        KJS::Bindings::Instance::setDidExecuteFunction(updateRenderingForBindings);
     545        initializedKJS = true;
     546    }
     547   
    544548    if (!(self = [super init]))
    545549        return nil;
    546    
    547     m_frame = new MacFrame(renderer);
     550
     551    m_frame = new MacFrame([page impl], 0);
    548552    m_frame->setBridge(self);
    549 
    550     if (!initializedObjectCacheSize){
     553    _shouldCreateRenderers = YES;
     554
     555    // FIXME: This is one-time initialization, but it gets the value of the setting from the
     556    // current WebView. That's a mismatch and not good!
     557    if (!initializedObjectCacheSize) {
    551558        Cache::setSize([self getObjectCacheSize]);
    552559        initializedObjectCacheSize = true;
    553560    }
    554561   
    555     if (!initializedKJS) {
    556         mainThread = pthread_self();
    557        
    558         RootObject::setFindRootObjectForNativeHandleFunction (rootForView);
    559 
    560         KJS::Bindings::Instance::setDidExecuteFunction(updateRenderingForBindings);
    561        
    562         initializedKJS = true;
    563     }
    564    
     562    return self;
     563}
     564
     565- (id)initSubframeWithRenderer:(RenderPart *)renderer
     566{
     567    if (!(self = [super init]))
     568        return nil;
     569   
     570    m_frame = new MacFrame(renderer->node()->getDocument()->frame()->page(), renderer);
     571    m_frame->setBridge(self);
    565572    _shouldCreateRenderers = YES;
    566    
    567573    return self;
     574}
     575
     576- (WebCorePageBridge *)page
     577{
     578    return Mac(m_frame->page())->bridge();
    568579}
    569580
     
    593604{
    594605    return m_frame;
    595 }
    596 
    597 - (void)setParent:(WebCoreFrameBridge *)parent
    598 {
    599     // FIXME: frames should be created with the right parent in the first place
    600     m_frame->tree()->setParent([parent part]);
    601606}
    602607
     
    16501655- (void)setOpener:(WebCoreFrameBridge *)bridge;
    16511656{
    1652     Frame *p = [bridge part];
     1657    Frame *p = [bridge impl];
    16531658   
    16541659    if (p)
     
    26332638- (RootObject *)executionContextForView:(NSView *)aView
    26342639{
    2635     MacFrame *frame = [self part];
     2640    MacFrame *frame = [self impl];
    26362641    RootObject *root = new RootObject(aView);    // The root gets deleted by JavaScriptCore.
    26372642    root->setRootObjectImp(Window::retrieveWindow(frame));
     
    26772682
    26782683@end
     2684
     2685@implementation WebCoreFrameBridge (WebCoreInternalUse)
     2686
     2687- (MacFrame*)impl
     2688{
     2689    return m_frame;
     2690}
     2691
     2692@end
  • trunk/WebCore/bridge/mac/WebCorePageBridge.h

    r12492 r12791  
    5151}
    5252
    53 - (id)initWithMainFrame:(WebCoreFrameBridge*)mainFrame;
     53- (void)setMainFrame:(WebCoreFrameBridge*)mainFrame;
     54
    5455- (WebCoreFrameBridge*)mainFrame;
     56
    5557@end
    5658
     
    6668@interface WebCorePageBridge (SubclassResponsibility) <WebCorePageBridge>
    6769@end
     70
     71// One method for internal use within WebCore itself.
     72// Could move this to another header, but would be a pity to create an entire header just for that.
     73
     74@interface WebCorePageBridge (WebCoreInternalUse)
     75- (WebCorePage*)impl;
     76@end
  • trunk/WebCore/bridge/mac/WebCorePageBridge.mm

    r12492 r12791  
    2828
    2929#import "MacFrame.h"
    30 #import "Page.h"
     30#import "PageMac.h"
    3131#import "WebCoreFrameBridge.h"
    3232
     
    3535@implementation WebCorePageBridge
    3636
    37 - (id)initWithMainFrame:(WebCoreFrameBridge *)mainFrame
     37- (id)init
    3838{
    39     if (!(self = [super init]))
    40         return nil;
     39    self = [super init];
     40    if (self)
     41        _page = new PageMac(self);
     42    return self;
     43}
    4144
    42     _page = new Page(adoptRef([mainFrame part]));
    43    
    44     return self;
     45- (void)setMainFrame:(WebCoreFrameBridge *)mainFrame
     46{
     47    _page->setMainFrame(adoptRef([mainFrame impl]));
    4548}
    4649
     
    5760
    5861@end
     62
     63@implementation WebCorePageBridge (WebCoreInternalUse)
     64
     65- (Page*)impl
     66{
     67    return _page;
     68}
     69
     70@end
  • trunk/WebCore/kwq/KWQAccObject.mm

    r12782 r12791  
    18021802    }
    18031803
    1804     MacFrame *frame = [bridge part];
     1804    MacFrame *frame = [bridge impl];
    18051805    if (!frame)
    18061806        return NULL;
  • trunk/WebCore/kwq/KWQComboBox.mm

    r12782 r12791  
    417417        // events during tracking.  [NSApp currentEvent] is still the original mouseDown
    418418        // at this point!
    419         [bridge part]->sendFakeEventsAfterWidgetTracking(event);
     419        [bridge impl]->sendFakeEventsAfterWidgetTracking(event);
    420420    }
    421421    [event release];
  • trunk/WebCore/kwq/KWQFileButton.mm

    r12782 r12791  
    138138   
    139139    WebCoreFrameBridge *bridge = MacFrame::bridgeForWidget(this);
    140     if (!bridge || ![bridge part] || ![bridge part]->tabsToAllControls()) {
     140    if (!bridge || ![bridge impl] || ![bridge impl]->tabsToAllControls()) {
    141141        return NoFocus;
    142142    }
  • trunk/WebCore/kwq/KWQSlider.mm

    r12782 r12791  
    243243   
    244244    WebCoreFrameBridge *bridge = MacFrame::bridgeForWidget(this);
    245     if (!bridge || ![bridge part] || ![bridge part]->tabsToAllControls()) {
     245    if (!bridge || ![bridge impl] || ![bridge impl]->tabsToAllControls()) {
    246246        return NoFocus;
    247247    }
  • trunk/WebCore/kwq/KWQTextArea.mm

    r12782 r12791  
    392392    // been installed.
    393393    if (!resizableByUserComputed) {
    394         resizableByUser = [MacFrame::bridgeForWidget(widget) part]->settings()->textAreasAreResizable();
     394        resizableByUser = [MacFrame::bridgeForWidget(widget) impl]->settings()->textAreasAreResizable();
    395395        resizableByUserComputed = YES;
    396396    }
     
    733733            }
    734734           
    735             [bridge part]->forceLayout();
     735            [bridge impl]->forceLayout();
    736736        }
    737737       
  • trunk/WebCore/page/Frame.cpp

    r12782 r12791  
    131131};
    132132
    133 void Frame::init(FrameView* view, RenderPart* ownerRenderer)
    134 {
    135   AtomicString::init();
    136   QualifiedName::init();
    137   EventNames::init();
    138   HTMLNames::init(); // FIXME: We should make this happen only when HTML is used.
    139 #if SVG_SUPPORT
    140   KSVG::SVGNames::init();
    141   XLinkNames::init();
    142 #endif
    143 
    144   _drawSelectionOnly = false;
    145   m_markedTextUsesUnderlines = false;
    146   m_windowHasFocus = false;
    147  
    148   frameCount = 0;
    149 
    150   // FIXME: FramePrivate constructor wants to take a parent but we do not have one yet
    151   d = new FramePrivate(0, this, ownerRenderer);
    152 
    153   d->m_view = view;
    154  
    155   d->m_extension = createBrowserExtension();
    156 
    157   d->m_bSecurityInQuestion = false;
    158   d->m_bMousePressed = false;
    159 
    160   // The java, javascript, and plugin settings will be set after the settings
    161   // have been initialized.
    162   d->m_bJScriptEnabled = true;
    163   d->m_bJavaEnabled = true;
    164   d->m_bPluginsEnabled = true;
    165 
    166   connect( Cache::loader(), SIGNAL( requestDone( khtml::DocLoader*, khtml::CachedObject *) ),
    167            this, SLOT( slotLoaderRequestDone( khtml::DocLoader*, khtml::CachedObject *) ) );
    168   connect( Cache::loader(), SIGNAL( requestFailed( khtml::DocLoader*, khtml::CachedObject *) ),
    169            this, SLOT( slotLoaderRequestDone( khtml::DocLoader*, khtml::CachedObject *) ) );
    170 }
    171 
    172133#if !NDEBUG
    173134struct FrameCounter {
     
    179140#endif
    180141
    181 Frame::Frame()
    182     : d(0)
    183 {
     142static inline Frame* parentFromOwnerRenderer(RenderPart* ownerRenderer)
     143{
     144    if (!ownerRenderer)
     145        return 0;
     146    return ownerRenderer->node()->getDocument()->frame();
     147}
     148
     149Frame::Frame(Page* page, RenderPart* ownerRenderer)
     150    : d(new FramePrivate(page, parentFromOwnerRenderer(ownerRenderer), this, ownerRenderer))
     151    , _drawSelectionOnly(false)
     152    , m_markedTextUsesUnderlines(false)
     153    , m_windowHasFocus(false)
     154    , frameCount(0)
     155{
     156    AtomicString::init();
     157    Cache::init();
     158    EventNames::init();
     159    HTMLNames::init();
     160    QualifiedName::init();
     161
     162#if SVG_SUPPORT
     163    SVGNames::init();
     164    XLinkNames::init();
     165#endif
     166
    184167    // FIXME: Frames were originally created with a refcount of 1, leave this
    185     // here until we can straighten that out
     168    // ref call here until we can straighten that out.
    186169    ref();
    187170#if !NDEBUG
    188171    ++FrameCounter::count;
    189172#endif
     173
     174    connect( Cache::loader(), SIGNAL( requestDone( khtml::DocLoader*, khtml::CachedObject *) ),
     175             this, SLOT( slotLoaderRequestDone( khtml::DocLoader*, khtml::CachedObject *) ) );
     176    connect( Cache::loader(), SIGNAL( requestFailed( khtml::DocLoader*, khtml::CachedObject *) ),
     177             this, SLOT( slotLoaderRequestDone( khtml::DocLoader*, khtml::CachedObject *) ) );
    190178}
    191179
     
    343331  d->m_workingURL = KURL();
    344332
    345   if (DocumentImpl *doc = d->m_doc) {
     333  if (DocumentImpl *doc = d->m_doc.get()) {
    346334    if (DocLoader *docLoader = doc->docLoader())
    347335      Cache::loader()->cancelRequests(docLoader);
     
    479467
    480468  if (d->m_doc) {
    481     disconnect(d->m_doc, SIGNAL(finishedParsing()), this, SLOT(slotFinishedParsing()));
     469    disconnect(d->m_doc.get(), SIGNAL(finishedParsing()), this, SLOT(slotFinishedParsing()));
    482470    d->m_doc->cancelParsing();
    483471    d->m_doc->detach();
     
    491479    d->m_view->clear();
    492480
    493   // do not dereference the document before the jscript and view are cleared, as some destructors
     481  // do not drop the document before the jscript and view are cleared, as some destructors
    494482  // might still try to access the document.
    495   if ( d->m_doc )
    496     d->m_doc->deref();
    497483  d->m_doc = 0;
    498484  d->m_decoder = 0;
     
    526512DocumentImpl *Frame::document() const
    527513{
    528     if ( d )
    529         return d->m_doc;
     514    if (d)
     515        return d->m_doc.get();
    530516    return 0;
    531517}
     
    535521    if (d) {
    536522        if (d->m_doc) {
    537             disconnect(d->m_doc, SIGNAL(finishedParsing()), this, SLOT(slotFinishedParsing()));
     523            disconnect(d->m_doc.get(), SIGNAL(finishedParsing()), this, SLOT(slotFinishedParsing()));
    538524            d->m_doc->detach();
    539             d->m_doc->deref();
    540525        }
    541526        d->m_doc = newDoc;
    542527        if (newDoc) {
    543             newDoc->ref();
    544528            newDoc->attach();
    545             connect(d->m_doc, SIGNAL(finishedParsing()), this, SLOT(slotFinishedParsing()));
     529            connect(newDoc, SIGNAL(finishedParsing()), this, SLOT(slotFinishedParsing()));
    546530        }
    547531    }
     
    666650    d->m_doc = DOMImplementationImpl::instance()->createHTMLDocument( d->m_view );
    667651
    668   d->m_doc->ref();
    669652  if (!d->m_doc->attached())
    670653    d->m_doc->attach( );
     
    691674  if (d->m_view)
    692675    d->m_view->resizeContents( 0, 0 );
    693   connect(d->m_doc,SIGNAL(finishedParsing()),this,SLOT(slotFinishedParsing()));
     676  connect(d->m_doc.get(),SIGNAL(finishedParsing()),this,SLOT(slotFinishedParsing()));
    694677}
    695678
     
    11121095  if (!n) {
    11131096    HTMLCollectionImpl *anchors =
    1114         new HTMLCollectionImpl( d->m_doc, HTMLCollectionImpl::DOC_ANCHORS);
     1097        new HTMLCollectionImpl(d->m_doc.get(), HTMLCollectionImpl::DOC_ANCHORS);
    11151098    anchors->ref();
    11161099    n = anchors->namedItem(name, !d->m_doc->inCompatMode());
     
    21782161CSSMutableStyleDeclarationImpl *Frame::typingStyle() const
    21792162{
    2180     return d->m_typingStyle;
     2163    return d->m_typingStyle.get();
    21812164}
    21822165
    21832166void Frame::setTypingStyle(CSSMutableStyleDeclarationImpl *style)
    21842167{
    2185     if (d->m_typingStyle == style)
    2186         return;
    2187        
    2188     CSSMutableStyleDeclarationImpl *old = d->m_typingStyle;
    21892168    d->m_typingStyle = style;
    2190     if (d->m_typingStyle)
    2191         d->m_typingStyle->ref();
    2192     if (old)
    2193         old->deref();
    21942169}
    21952170
    21962171void Frame::clearTypingStyle()
    21972172{
    2198     setTypingStyle(0);
     2173    d->m_typingStyle = 0;
    21992174}
    22002175
     
    28272802bool Frame::isFrameSet() const
    28282803{
    2829     DocumentImpl *document = d->m_doc;
     2804    DocumentImpl* document = d->m_doc.get();
    28302805    if (!document || !document->isHTMLDocument())
    28312806        return false;
     
    35333508}
    35343509
     3510Page* Frame::page() const
     3511{
     3512    return d->m_page;
     3513}
     3514
    35353515} // namespace WebCore
  • trunk/WebCore/page/Frame.h

    r12782 r12791  
    5757namespace WebCore {
    5858
    59   class SelectionController;
    60   class Selection;
    61   class RangeImpl;
    62   class EditCommandPtr;
    63   class CSSMutableStyleDeclarationImpl;
    64   class CSSStyleDeclarationImpl;
    65   class MouseDoubleClickEvent;
    66   class MousePressEvent;
    67   class MouseReleaseEvent;
    68   class DrawContentsEvent;
    69   class VisiblePosition;
    70   class MouseEvent;
    71   class MouseMoveEvent;
    72   class CSSComputedStyleDeclarationImpl;
    73   class FramePrivate;
    74   class FrameTree;
    75   class Plugin;
    76   class KJSProxyImpl;
    77  
     59class CSSComputedStyleDeclarationImpl;
     60class CSSMutableStyleDeclarationImpl;
     61class CSSStyleDeclarationImpl;
     62class DrawContentsEvent;
     63class EditCommandPtr;
     64class FramePrivate;
     65class FrameTree;
     66class KJSProxyImpl;
     67class MouseDoubleClickEvent;
     68class MouseEvent;
     69class MouseMoveEvent;
     70class MousePressEvent;
     71class MouseReleaseEvent;
     72class Page;
     73class Plugin;
     74class RangeImpl;
     75class Selection;
     76class SelectionController;
     77class VisiblePosition;
    7878
    7979template <typename T> class Timer;
     
    8888};
    8989
    90 enum ObjectContentType
    91 {
     90enum ObjectContentType {
    9291    ObjectContentNone,
    9392    ObjectContentImage,
     
    101100  enum { NoXPosForVerticalArrowNavigation = INT_MIN };
    102101
    103   Frame();
     102  Frame(Page*, RenderPart*);
    104103  virtual ~Frame();
    105104
    106105  virtual bool openURL(const KURL&);
     106  virtual bool closeURL();
    107107
    108108  void didExplicitOpen();
    109109
    110   /**
    111    * Stops loading the document and kill all data requests (for images, etc.)
     110  Page* page() const;
     111
     112  /**
     113   * Stop loading the document and kill all data requests (for images, etc.)
    112114   */
    113115  void stopLoading(bool sendUnload = false);
    114   virtual bool closeURL();
    115116
    116117  /**
     
    689690
    690691  // Methods with platform-specific overrides (and no base class implementation).
    691   virtual BrowserExtension* createBrowserExtension() = 0;
    692692  virtual void setTitle(const DOMString &) = 0;
    693693  virtual void handledOnloadEvents() = 0;
     
    808808  void overURL( const QString &url, const QString &target, bool shiftPressed = false );
    809809
    810   void init(FrameView*, RenderPart*);
    811 
    812810  bool shouldUsePlugin(NodeImpl* element, const KURL& url, const QString& mimeType, bool hasFallback, bool& useFallback);
    813811  bool loadPlugin(RenderPart* renderer, const KURL &url, const QString &mimeType,
  • trunk/WebCore/page/FramePrivate.h

    r12768 r12791  
    2929
    3030#include "Frame.h"
     31#include "FrameTree.h"
    3132#include "SelectionController.h"
    3233#include "Timer.h"
     
    3536#include "kjs_proxy.h"
    3637#include <kio/global.h>
    37 #include "FrameTree.h"
    38 #include "kxmlcore/Vector.h"
     38#include <kxmlcore/Vector.h>
    3939
    4040namespace KIO {
     
    4646    class Decoder;
    4747
    48 class FrameList : public QValueList<RefPtr<Frame> >
    49 {
    50 public:
    51     Iterator find(const QString &name);
    52 };
    53 
    54 typedef FrameList::ConstIterator ConstFrameIt;
    55 typedef FrameList::Iterator FrameIt;
    56 
    57 enum RedirectionScheduled {
    58     noRedirectionScheduled,
    59     redirectionScheduled,
    60     locationChangeScheduled,
    61     historyNavigationScheduled,
    62     locationChangeScheduledDuringLoad
    63 };
    64 
    65 class FramePrivate
    66 {
    67 public:
    68   FramePrivate(Frame *parent, Frame *thisFrame, RenderPart* ownerRenderer)
    69       : m_treeNode(thisFrame, parent)
    70       , m_ownerRenderer(ownerRenderer)
    71       , m_redirectionTimer(thisFrame, &Frame::redirectionTimerFired)
    72       , m_caretBlinkTimer(thisFrame, &Frame::caretBlinkTimerFired)
    73       , m_lifeSupportTimer(thisFrame, &Frame::lifeSupportTimerFired)
    74   {
    75     m_doc = 0;
    76     m_jscript = 0;
    77     m_runningScripts = 0;
    78     m_job = 0;
    79     m_bComplete = true;
    80     m_bLoadingMainResource = false;
    81     m_bLoadEventEmitted = true;
    82     m_bUnloadEventEmitted = true;
    83     m_cachePolicy = KIO::CC_Verify;
    84     m_bClearing = false;
    85     m_bCleared = true;
    86     m_zoomFactor = 100;
    87     m_bDnd = true;
    88     m_haveEncoding = false;
    89     m_activeFrame = 0;
    90     m_frameNameId = 1;
    91 
    92     m_restored = false;
    93 
    94     m_focusNodeNumber = -1;
    95     m_focusNodeRestored = false;
    96 
    97     m_onlyLocalReferences = false;
    98 
    99     m_caretVisible = false;
    100     m_caretBlinks = true;
    101     m_caretPaint = true;
    102    
    103     m_typingStyle = 0;
    104 
    105     m_metaRefreshEnabled = true;
    106     m_bHTTPRefresh = false;
    107 
    108     m_bFirstData = true;
    109     m_submitForm = 0;
    110     m_scheduledRedirection = noRedirectionScheduled;
    111     m_delayRedirect = 0;
    112 
    113     m_bPendingChildRedirection = false;
    114     m_executingJavaScriptFormAction = false;
    115 
    116     m_cancelWithLoadInProgress = false;
    117    
    118     // inherit settings from parent
    119     if (parent && parent->inherits("Frame"))
     48    enum RedirectionScheduled {
     49        noRedirectionScheduled,
     50        redirectionScheduled,
     51        locationChangeScheduled,
     52        historyNavigationScheduled,
     53        locationChangeScheduledDuringLoad
     54    };
     55
     56    class FramePrivate
    12057    {
    121         Frame *frame = static_cast<Frame*>(parent);
    122         if (frame->d)
     58    public:
     59        FramePrivate(Page* page, Frame* parent, Frame* thisFrame, RenderPart* ownerRenderer)
     60            : m_page(page)
     61            , m_treeNode(thisFrame, parent)
     62            , m_ownerRenderer(ownerRenderer)
     63            , m_extension(0)
     64            , m_jscript(0)
     65            , m_runningScripts(0)
     66            , m_bJScriptEnabled(true)
     67            , m_bJavaEnabled(true)
     68            , m_bPluginsEnabled(true)
     69            , m_metaRefreshEnabled(true)
     70            , m_restored(false)
     71            , m_frameNameId(1)
     72            , m_settings(0)
     73            , m_job(0)
     74            , m_bComplete(true)
     75            , m_bLoadingMainResource(false)
     76            , m_bLoadEventEmitted(true)
     77            , m_bUnloadEventEmitted(true)
     78            , m_haveEncoding(false)
     79            , m_bHTTPRefresh(false)
     80            , m_redirectLockHistory(false)
     81            , m_redirectUserGesture(false)
     82            , m_cachePolicy(KIO::CC_Verify)
     83            , m_redirectionTimer(thisFrame, &Frame::redirectionTimerFired)
     84            , m_scheduledRedirection(noRedirectionScheduled)
     85            , m_delayRedirect(0)
     86            , m_zoomFactor(100)
     87            , m_submitForm(0)
     88            , m_bMousePressed(false)
     89            , m_caretBlinkTimer(thisFrame, &Frame::caretBlinkTimerFired)
     90            , m_caretVisible(false)
     91            , m_caretBlinks(true)
     92            , m_caretPaint(true)
     93            , m_bDnd(true)
     94            , m_bFirstData(true)
     95            , m_bClearing(false)
     96            , m_bCleared(true)
     97            , m_bSecurityInQuestion(false)
     98            , m_focusNodeRestored(false)
     99            , m_isFocused(false)
     100            , m_focusNodeNumber(-1)
     101            , m_activeFrame(0)
     102            , m_opener(0)
     103            , m_openedByJS(false)
     104            , m_newJSInterpreterExists(false)
     105            , m_bPendingChildRedirection(false)
     106            , m_executingJavaScriptFormAction(false)
     107            , m_cancelWithLoadInProgress(false)
     108            , m_lifeSupportTimer(thisFrame, &Frame::lifeSupportTimerFired)
    123109        {
    124             // Same for SSL settings
    125             m_onlyLocalReferences = frame->d->m_onlyLocalReferences;
    126             m_zoomFactor = frame->d->m_zoomFactor;
     110            // inherit settings from parent
     111            if (parent && parent->inherits("Frame")) {
     112                Frame *frame = static_cast<Frame*>(parent);
     113                if (frame->d)
     114                    m_zoomFactor = frame->d->m_zoomFactor;
     115            }
    127116        }
    128     }
    129 
    130     m_isFocused = false;
    131     m_focusNodeNumber = -1;
    132     m_focusNodeRestored = false;
    133     m_opener = 0;
    134     m_openedByJS = false;
    135     m_newJSInterpreterExists = false;
    136   }
    137   ~FramePrivate()
    138   {
    139     delete m_extension;
    140     delete m_jscript;
    141     if (m_typingStyle)
    142         m_typingStyle->deref();
    143   }
    144 
    145   FrameTree m_treeNode;
    146 
    147   // old style frame info
    148   FrameList m_frames;
    149   Vector<RefPtr<Plugin> > m_plugins;
    150 
    151   QGuardedPtr<RenderPart> m_ownerRenderer;
    152   QGuardedPtr<FrameView> m_view;
    153   BrowserExtension *m_extension;
    154   DocumentImpl *m_doc;
    155   RefPtr<Decoder> m_decoder;
    156   QString m_encoding;
    157   QString scheduledScript;
    158   RefPtr<NodeImpl> scheduledScriptNode;
    159 
    160   KJSProxyImpl *m_jscript;
    161   int m_runningScripts;
    162   bool m_bJScriptEnabled :1;
    163   bool m_bJavaEnabled :1;
    164   bool m_bPluginsEnabled :1;
    165   bool m_metaRefreshEnabled :1;
    166   bool m_restored :1;
    167   int m_frameNameId;
    168 
    169   KHTMLSettings *m_settings;
    170 
    171   KIO::TransferJob * m_job;
    172 
    173   QString m_kjsStatusBarText;
    174   QString m_kjsDefaultStatusBarText;
    175   QString m_lastModified;
    176 
    177 
    178   bool m_bComplete:1;
    179   bool m_bLoadingMainResource:1;
    180   bool m_bLoadEventEmitted:1;
    181   bool m_bUnloadEventEmitted:1;
    182   bool m_haveEncoding:1;
    183   bool m_bHTTPRefresh:1;
    184   bool m_onlyLocalReferences :1;
    185   bool m_redirectLockHistory:1;
    186   bool m_redirectUserGesture:1;
    187  
    188   KURL m_url;
    189   KURL m_workingURL;
    190 
    191   KIO::CacheControl m_cachePolicy;
    192   Timer<Frame> m_redirectionTimer;
    193 
    194   RedirectionScheduled m_scheduledRedirection;
    195   double m_delayRedirect;
    196   QString m_redirectURL;
    197   QString m_redirectReferrer;
    198   int m_scheduledHistoryNavigationSteps;
    199 
    200   int m_zoomFactor;
    201 
    202   QString m_strSelectedURL;
    203   QString m_strSelectedURLTarget;
    204   QString m_referrer;
    205 
    206   struct SubmitForm {
    207     const char *submitAction;
    208     QString submitUrl;
    209     FormData submitFormData;
    210     QString target;
    211     QString submitContentType;
    212     QString submitBoundary;
    213   };
    214 
    215   SubmitForm *m_submitForm;
    216 
    217   bool m_bMousePressed;
    218   RefPtr<NodeImpl> m_mousePressNode; //node under the mouse when the mouse was pressed (set in the mouse handler)
    219 
    220   ETextGranularity m_selectionGranularity;
    221   bool m_beganSelectingText;
    222 
    223   SelectionController m_selection;
    224   SelectionController m_dragCaret;
    225   Selection m_mark;
    226   Timer<Frame> m_caretBlinkTimer;
    227 
    228   bool m_caretVisible:1;
    229   bool m_caretBlinks:1;
    230   bool m_caretPaint:1;
    231   bool m_bDnd:1;
    232   bool m_bFirstData:1;
    233   bool m_bClearing:1;
    234   bool m_bCleared:1;
    235   bool m_bSecurityInQuestion:1;
    236   bool m_focusNodeRestored:1;
    237   bool m_isFocused:1;
    238 
    239   EditCommandPtr m_lastEditCommand;
    240   int m_xPosForVerticalArrowNavigation;
    241   CSSMutableStyleDeclarationImpl *m_typingStyle;
    242 
    243   int m_focusNodeNumber;
    244 
    245   IntPoint m_dragStartPos;
    246 
    247   Frame* m_activeFrame;
    248   QGuardedPtr<Frame> m_opener;
    249   bool m_openedByJS;
    250   bool m_newJSInterpreterExists; // set to 1 by setOpenedByJS, for window.open
    251   bool m_bPendingChildRedirection;
    252   bool m_executingJavaScriptFormAction;
    253   bool m_cancelWithLoadInProgress;
    254 
    255   Timer<Frame> m_lifeSupportTimer;
    256 };
     117
     118        ~FramePrivate()
     119        {
     120            delete m_extension;
     121            delete m_jscript;
     122        }
     123
     124        Page* m_page;
     125        FrameTree m_treeNode;
     126
     127        Vector<RefPtr<Plugin> > m_plugins;
     128
     129        QGuardedPtr<RenderPart> m_ownerRenderer;
     130        QGuardedPtr<FrameView> m_view;
     131        BrowserExtension* m_extension;
     132        RefPtr<DocumentImpl> m_doc;
     133        RefPtr<Decoder> m_decoder;
     134        QString m_encoding;
     135        QString scheduledScript;
     136        RefPtr<NodeImpl> scheduledScriptNode;
     137
     138        KJSProxyImpl* m_jscript;
     139        int m_runningScripts;
     140        bool m_bJScriptEnabled : 1;
     141        bool m_bJavaEnabled : 1;
     142        bool m_bPluginsEnabled : 1;
     143        bool m_metaRefreshEnabled : 1;
     144        bool m_restored : 1;
     145        int m_frameNameId;
     146
     147        KHTMLSettings* m_settings;
     148
     149        KIO::TransferJob* m_job;
     150
     151        QString m_kjsStatusBarText;
     152        QString m_kjsDefaultStatusBarText;
     153        QString m_lastModified;
     154
     155        bool m_bComplete : 1;
     156        bool m_bLoadingMainResource : 1;
     157        bool m_bLoadEventEmitted : 1;
     158        bool m_bUnloadEventEmitted : 1;
     159        bool m_haveEncoding : 1;
     160        bool m_bHTTPRefresh : 1;
     161        bool m_redirectLockHistory : 1;
     162        bool m_redirectUserGesture : 1;
     163
     164        KURL m_url;
     165        KURL m_workingURL;
     166
     167        KIO::CacheControl m_cachePolicy;
     168        Timer<Frame> m_redirectionTimer;
     169
     170        RedirectionScheduled m_scheduledRedirection;
     171        double m_delayRedirect;
     172        QString m_redirectURL;
     173        QString m_redirectReferrer;
     174        int m_scheduledHistoryNavigationSteps;
     175
     176        int m_zoomFactor;
     177
     178        QString m_strSelectedURL;
     179        QString m_strSelectedURLTarget;
     180        QString m_referrer;
     181
     182        struct SubmitForm {
     183            const char* submitAction;
     184            QString submitUrl;
     185            FormData submitFormData;
     186            QString target;
     187            QString submitContentType;
     188            QString submitBoundary;
     189        };
     190        SubmitForm* m_submitForm;
     191
     192        bool m_bMousePressed;
     193        RefPtr<NodeImpl> m_mousePressNode; // node under the mouse when the mouse was pressed (set in the mouse handler)
     194
     195        ETextGranularity m_selectionGranularity;
     196        bool m_beganSelectingText;
     197
     198        SelectionController m_selection;
     199        SelectionController m_dragCaret;
     200        Selection m_mark;
     201        Timer<Frame> m_caretBlinkTimer;
     202
     203        bool m_caretVisible : 1;
     204        bool m_caretBlinks : 1;
     205        bool m_caretPaint : 1;
     206        bool m_bDnd : 1;
     207        bool m_bFirstData : 1;
     208        bool m_bClearing : 1;
     209        bool m_bCleared : 1;
     210        bool m_bSecurityInQuestion : 1;
     211        bool m_focusNodeRestored : 1;
     212        bool m_isFocused : 1;
     213
     214        EditCommandPtr m_lastEditCommand;
     215        int m_xPosForVerticalArrowNavigation;
     216        RefPtr<CSSMutableStyleDeclarationImpl> m_typingStyle;
     217
     218        int m_focusNodeNumber;
     219
     220        IntPoint m_dragStartPos;
     221
     222        Frame* m_activeFrame;
     223        QGuardedPtr<Frame> m_opener;
     224        bool m_openedByJS;
     225        bool m_newJSInterpreterExists; // set to 1 by setOpenedByJS, for window.open
     226        bool m_bPendingChildRedirection;
     227        bool m_executingJavaScriptFormAction;
     228        bool m_cancelWithLoadInProgress;
     229
     230        Timer<Frame> m_lifeSupportTimer;
     231    };
    257232
    258233}
  • trunk/WebCore/page/Page.cpp

    r12492 r12791  
    3232static int pageCount;
    3333
    34 Page::Page(PassRefPtr<Frame> mainFrame)
    35     : m_mainFrame(mainFrame)
     34Page::Page()
    3635{
    3736    ++pageCount;
     
    5150}
    5251
     52void Page::setMainFrame(PassRefPtr<Frame> mainFrame)
     53{
     54    ASSERT(!m_mainFrame);
     55    m_mainFrame = mainFrame;
    5356}
     57
     58}
  • trunk/WebCore/page/Page.h

    r12719 r12791  
    3232    class Page : Noncopyable {
    3333    public:
    34         Page(PassRefPtr<Frame> mainFrame);
    35         ~Page();
     34        Page();
     35        virtual ~Page();
     36        void setMainFrame(PassRefPtr<Frame> mainFrame);
    3637        Frame* mainFrame() { return m_mainFrame.get(); }
    3738    private:
  • trunk/WebKit/ChangeLog

    r12781 r12791  
     12006-02-13  Darin Adler  <darin@apple.com>
     2
     3        Reviewed by Maciej.
     4
     5        - move pointer from frame to page over to WebCore
     6
     7        * WebCoreSupport/WebPageBridge.m: (-[WebPageBridge initWithMainFrameName:webView:frameView:]):
     8        Call super init to create the page before creating the main frame and calling setMainFrame: with it.
     9
     10        * WebCoreSupport/WebFrameBridge.h: Remove page pointer, and change init function parameters.
     11        * WebCoreSupport/WebFrameBridge.m:
     12        (-[WebFrameBridge initMainFrameWithPage:frameName:view:]): New function that is used only for
     13        the main frame. Passes the page over to the other side of the bridge.
     14        (-[WebFrameBridge initSubframeWithRenderer:frameName:view:]): New function that is used only for
     15        subframes. Passes the renderer over to the other side of the bridge.
     16        (-[WebFrameBridge mainFrame]):
     17        (-[WebFrameBridge webView]):
     18        (-[WebFrameBridge createWindowWithURL:frameName:]):
     19        (-[WebFrameBridge showWindow]):
     20        (-[WebFrameBridge areToolbarsVisible]):
     21        (-[WebFrameBridge setToolbarsVisible:]):
     22        (-[WebFrameBridge isStatusbarVisible]):
     23        (-[WebFrameBridge setStatusbarVisible:]):
     24        (-[WebFrameBridge setWindowFrame:]):
     25        (-[WebFrameBridge windowFrame]):
     26        (-[WebFrameBridge setWindowContentRect:]):
     27        (-[WebFrameBridge windowContentRect]):
     28        (-[WebFrameBridge setWindowIsResizable:]):
     29        (-[WebFrameBridge windowIsResizable]):
     30        (-[WebFrameBridge firstResponder]):
     31        (-[WebFrameBridge makeFirstResponder:]):
     32        (-[WebFrameBridge closeWindowSoon]):
     33        (-[WebFrameBridge runJavaScriptAlertPanelWithMessage:]):
     34        (-[WebFrameBridge runJavaScriptConfirmPanelWithMessage:]):
     35        (-[WebFrameBridge canRunBeforeUnloadConfirmPanel]):
     36        (-[WebFrameBridge runBeforeUnloadConfirmPanelWithMessage:]):
     37        (-[WebFrameBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]):
     38        (-[WebFrameBridge addMessageToConsole:]):
     39        (-[WebFrameBridge runOpenPanelForFileButtonWithResultListener:]):
     40        (-[WebFrameBridge setStatusText:]):
     41        (-[WebFrameBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
     42        (-[WebFrameBridge focusWindow]):
     43        (-[WebFrameBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
     44        (-[WebFrameBridge userAgentForURL:]):
     45        (-[WebFrameBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
     46        (-[WebFrameBridge previousKeyViewOutsideWebFrameViews]):
     47        (-[WebFrameBridge defersLoading]):
     48        (-[WebFrameBridge setDefersLoading:]):
     49        (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
     50        (-[WebFrameBridge _preferences]):
     51        (-[WebFrameBridge selectWordBeforeMenuEvent]):
     52        (-[WebFrameBridge historyLength]):
     53        (-[WebFrameBridge canGoBackOrForward:]):
     54        (-[WebFrameBridge goBackOrForward:]):
     55        (-[WebFrameBridge print]):
     56        (-[WebFrameBridge pollForAppletInView:]):
     57        (-[WebFrameBridge respondToChangedContents]):
     58        (-[WebFrameBridge respondToChangedSelection]):
     59        (-[WebFrameBridge undoManager]):
     60        (-[WebFrameBridge issueCutCommand]):
     61        (-[WebFrameBridge issueCopyCommand]):
     62        (-[WebFrameBridge issuePasteCommand]):
     63        (-[WebFrameBridge issuePasteAndMatchStyleCommand]):
     64        (-[WebFrameBridge canPaste]):
     65        (-[WebFrameBridge overrideMediaType]):
     66        (-[WebFrameBridge isEditable]):
     67        (-[WebFrameBridge shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
     68        (-[WebFrameBridge shouldBeginEditing:]):
     69        (-[WebFrameBridge shouldEndEditing:]):
     70        (-[WebFrameBridge windowObjectCleared]):
     71        (-[WebFrameBridge spellCheckerDocumentTag]):
     72        (-[WebFrameBridge isContinuousSpellCheckingEnabled]):
     73        (-[WebFrameBridge didFirstLayout]):
     74        (-[WebFrameBridge dashboardRegionsChanged:]):
     75        (-[WebFrameBridge createModalDialogWithURL:]):
     76        (-[WebFrameBridge canRunModal]):
     77        (-[WebFrameBridge runModal]):
     78        Change all calls to [_page webView] to use [self webView] instead.
     79
    180=== WebKit-521.7
    281
  • trunk/WebKit/WebCoreSupport/WebFrameBridge.h

    r12638 r12791  
    11/*
    2  * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
     2 * Copyright (C) 2005, 2006 Apple Computer, Inc.  All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    3030
    3131@class WebPageBridge;
    32 @class WebDataSource;
     32@class WebCoreRenderPart;
    3333@class WebFrame;
    3434@class WebFrameView;
    35 @class WebCoreRenderPart;
     35
    3636@protocol WebOpenPanelResultListener;
    3737
     
    3939{
    4040    WebFrame *_frame;
    41     WebPageBridge *_page;
    4241
    4342    WebCoreKeyboardUIMode _keyboardUIMode;
     
    5049}
    5150
    52 - (id)initWithPage:(WebPageBridge *)page webView:(WebView *)webView renderer:(WebCoreRenderPart *)renderer frameName:(NSString *)name view:(WebFrameView *)view;
     51- (id)initMainFrameWithPage:(WebPageBridge *)page frameName:(NSString *)name view:(WebFrameView *)view;
     52
    5353- (void)close;
    5454
     
    5858
    5959- (WebFrame *)webFrame;
    60 - (WebPageBridge *)page;
    6160
    6261@end
  • trunk/WebKit/WebCoreSupport/WebFrameBridge.m

    r12684 r12791  
    11/*
    2  * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
     2 * Copyright (C) 2005, 2006 Apple Computer, Inc.  All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2727 */
    2828
    29 #import <WebKit/WebFrameBridge.h>
    30 
    31 #import <WebKit/WebAssertions.h>
    32 #import <WebKit/WebBackForwardList.h>
    33 #import <WebKit/WebBaseNetscapePluginView.h>
    34 #import <WebKit/WebBasePluginPackage.h>
    35 #import <WebKit/WebLoader.h>
    36 #import <WebKit/WebDataSourcePrivate.h>
    37 #import <WebKit/WebDefaultUIDelegate.h>
    38 #import <WebKit/WebEditingDelegate.h>
    39 #import <WebKit/WebFileButton.h>
    40 #import <WebKit/WebFormDataStream.h>
    41 #import <WebKit/WebFormDelegate.h>
    42 #import <WebKit/WebFrameInternal.h>
    43 #import <WebKit/WebFrameLoadDelegate.h>
    44 #import <WebKit/WebFrameViewInternal.h>
    45 #import <WebKit/WebHistoryItemPrivate.h>
    46 #import <WebKit/WebHTMLRepresentationPrivate.h>
    47 #import <WebKit/WebHTMLViewInternal.h>
    48 #import <WebKit/WebImageView.h>
    49 #import <WebKit/WebJavaPlugIn.h>
    50 #import <WebKit/WebJavaScriptTextInputPanel.h>
    51 #import <WebKit/WebKitErrorsPrivate.h>
    52 #import <WebKit/WebKitLogging.h>
    53 #import <WebKit/WebKitNSStringExtras.h>
    54 #import <WebKit/WebKitStatisticsPrivate.h>
    55 #import <WebKit/WebKitSystemBits.h>
    56 #import <WebKit/WebNetscapePluginEmbeddedView.h>
    57 #import <WebKit/WebNetscapePluginPackage.h>
    58 #import <WebKit/WebNSObjectExtras.h>
    59 #import <WebKit/WebNSURLExtras.h>
    60 #import <WebKit/WebNSURLRequestExtras.h>
    61 #import <WebKit/WebNSViewExtras.h>
    62 #import <WebKit/WebNullPluginView.h>
    63 #import <WebKit/WebPlugin.h>
    64 #import <WebKit/WebPluginController.h>
    65 #import <WebKit/WebPluginDatabase.h>
    66 #import <WebKit/WebPluginDocumentView.h>
    67 #import <WebKit/WebPluginPackage.h>
    68 #import <WebKit/WebPluginViewFactoryPrivate.h>
    69 #import <WebKit/WebNetscapePluginDocumentView.h>
    70 #import <WebKit/WebPreferencesPrivate.h>
    71 #import <WebKit/WebResourcePrivate.h>
    72 #import <WebKit/WebSubresourceLoader.h>
    73 #import <WebKit/WebViewInternal.h>
    74 #import <WebKit/WebViewPrivate.h>
    75 #import <WebKit/WebUIDelegatePrivate.h>
     29#import "WebFrameBridge.h"
     30
     31#import "WebAssertions.h"
     32#import "WebBackForwardList.h"
     33#import "WebBaseNetscapePluginView.h"
     34#import "WebBasePluginPackage.h"
     35#import "WebDataSourcePrivate.h"
     36#import "WebDefaultUIDelegate.h"
     37#import "WebEditingDelegate.h"
     38#import "WebFileButton.h"
     39#import "WebFormDataStream.h"
     40#import "WebFormDelegate.h"
     41#import "WebFrameInternal.h"
     42#import "WebFrameLoadDelegate.h"
     43#import "WebFrameViewInternal.h"
     44#import "WebHTMLRepresentationPrivate.h"
     45#import "WebHTMLViewInternal.h"
     46#import "WebHistoryItemPrivate.h"
     47#import "WebImageView.h"
     48#import "WebJavaPlugIn.h"
     49#import "WebJavaScriptTextInputPanel.h"
     50#import "WebKitErrorsPrivate.h"
     51#import "WebKitLogging.h"
     52#import "WebKitNSStringExtras.h"
     53#import "WebKitStatisticsPrivate.h"
     54#import "WebKitSystemBits.h"
     55#import "WebLoader.h"
     56#import "WebLocalizableStrings.h"
     57#import "WebNSObjectExtras.h"
     58#import "WebNSURLExtras.h"
     59#import "WebNSURLRequestExtras.h"
     60#import "WebNSViewExtras.h"
     61#import "WebNetscapePluginDocumentView.h"
     62#import "WebNetscapePluginEmbeddedView.h"
     63#import "WebNetscapePluginPackage.h"
     64#import "WebNullPluginView.h"
     65#import "WebPageBridge.h"
     66#import "WebPlugin.h"
     67#import "WebPluginController.h"
     68#import "WebPluginDatabase.h"
     69#import "WebPluginDocumentView.h"
     70#import "WebPluginPackage.h"
     71#import "WebPluginViewFactoryPrivate.h"
     72#import "WebPreferencesPrivate.h"
     73#import "WebResourcePrivate.h"
     74#import "WebSubresourceLoader.h"
     75#import "WebUIDelegatePrivate.h"
     76#import "WebViewInternal.h"
     77#import "WebViewPrivate.h"
     78#import <Foundation/NSURLConnection.h>
     79#import <Foundation/NSURLRequest.h>
     80#import <Foundation/NSURLResponse.h>
     81#import <JavaVM/jni.h>
     82#import <WebCore/WebCoreFrameNamespaces.h>
    7683#import <WebKitSystemInterface.h>
    77 
    78 #import <WebCore/WebCoreFrameNamespaces.h>
    79 
    80 #import <Foundation/NSURLRequest.h>
    81 #import <Foundation/NSURLConnection.h>
    82 #import <Foundation/NSURLResponse.h>
    83 
    84 #import <WebKit/WebLocalizableStrings.h>
    85 
    86 #import <JavaVM/jni.h>
    8784
    8885#define KeyboardUIModeDidChangeNotification @"com.apple.KeyboardUIModeDidChange"
     
    117114@implementation WebFrameBridge
    118115
    119 - (id)initWithPage:(WebPageBridge *)page webView:(WebView *)webView renderer:(WebCoreRenderPart *)renderer frameName:(NSString *)name view:(WebFrameView *)view
    120 {
    121     self = [super initWithRenderer:renderer];
     116- (id)initMainFrameWithPage:(WebPageBridge *)page frameName:(NSString *)name view:(WebFrameView *)view
     117{
     118    self = [super initMainFrameWithPage:page];
    122119
    123120    ++WebBridgeCount;
    124121   
    125     _page = page;
    126     _frame = [[WebFrame alloc] _initWithWebFrameView:view webView:webView bridge:self];
     122    _frame = [[WebFrame alloc] _initWithWebFrameView:view webView:[self webView] bridge:self];
    127123
    128124    [self setName:name];
    129     [self initializeSettings:[webView _settings]];
    130     [self setTextSizeMultiplier:[webView textSizeMultiplier]];
     125    [self initializeSettings:[[self webView] _settings]];
     126    [self setTextSizeMultiplier:[[self webView] textSizeMultiplier]];
     127
     128    return self;
     129}
     130
     131- (id)initSubframeWithRenderer:(WebCoreRenderPart *)renderer frameName:(NSString *)name view:(WebFrameView *)view
     132{
     133    self = [super initSubframeWithRenderer:renderer];
     134
     135    ++WebBridgeCount;
     136   
     137    _frame = [[WebFrame alloc] _initWithWebFrameView:view webView:[self webView] bridge:self];
     138
     139    [self setName:name];
     140    [self initializeSettings:[[self webView] _settings]];
     141    [self setTextSizeMultiplier:[[self webView] textSizeMultiplier]];
    131142
    132143    return self;
     
    167178}
    168179
    169 - (WebPageBridge *)page;
    170 {
    171     return _page;
    172 }
    173 
    174180- (WebCoreFrameBridge *)mainFrame
    175181{
    176182    ASSERT(_frame != nil);
    177     return [[[_page webView] mainFrame] _bridge];
     183    return [[[self webView] mainFrame] _bridge];
    178184}
    179185
    180186- (WebView *)webView
    181187{
    182     ASSERT(_page);
    183     return [_page webView];
     188    ASSERT([[self page] isKindOfClass:[WebPageBridge class]]);
     189    return [(WebPageBridge *)[self page] webView];
    184190}
    185191
     
    201207    }
    202208
    203     WebView *currentWebView = [_page webView];
     209    WebView *currentWebView = [self webView];
    204210    id wd = [currentWebView UIDelegate];
    205211    WebView *newWebView = nil;
     
    216222- (void)showWindow
    217223{
    218     WebView *wv = [_page webView];
     224    WebView *wv = [self webView];
    219225    [[wv _UIDelegateForwarder] webViewShow: wv];
    220226}
     
    223229{
    224230    ASSERT(_frame != nil);
    225     WebView *wv = [_page webView];
     231    WebView *wv = [self webView];
    226232    id wd = [wv UIDelegate];
    227233    if ([wd respondsToSelector: @selector(webViewAreToolbarsVisible:)])
     
    233239{
    234240    ASSERT(_frame != nil);
    235     WebView *wv = [_page webView];
     241    WebView *wv = [self webView];
    236242    [[wv _UIDelegateForwarder] webView:wv setToolbarsVisible:visible];
    237243}
     
    252258{
    253259    ASSERT(_frame != nil);
    254     WebView *wv = [_page webView];
     260    WebView *wv = [self webView];
    255261    id wd = [wv UIDelegate];
    256262    if ([wd respondsToSelector: @selector(webViewIsStatusBarVisible:)])
     
    262268{
    263269    ASSERT(_frame != nil);
    264     WebView *wv = [_page webView];
     270    WebView *wv = [self webView];
    265271    [[wv _UIDelegateForwarder] webView:wv setStatusBarVisible:visible];
    266272}
     
    269275{
    270276    ASSERT(_frame != nil);
    271     WebView *webView = [_page webView];
     277    WebView *webView = [self webView];
    272278    [[webView _UIDelegateForwarder] webView:webView setFrame:frameRect];
    273279}
     
    276282{
    277283    ASSERT(_frame != nil);
    278     WebView *webView = [_page webView];
     284    WebView *webView = [self webView];
    279285    return [[webView _UIDelegateForwarder] webViewFrame:webView];
    280286}
     
    283289{
    284290    ASSERT(_frame != nil);
    285     WebView *webView = [_page webView];
     291    WebView *webView = [self webView];
    286292    [[webView _UIDelegateForwarder] webView:webView setFrame:contentRect];
    287293}
     
    290296{
    291297    ASSERT(_frame != nil);
    292     WebView *webView = [_page webView];
     298    WebView *webView = [self webView];
    293299    return [[webView _UIDelegateForwarder] webViewContentRect:webView];
    294300}
     
    297303{
    298304    ASSERT(_frame != nil);
    299     WebView *webView = [_page webView];
     305    WebView *webView = [self webView];
    300306    [[webView _UIDelegateForwarder] webView:webView setResizable:resizable];
    301307}
     
    304310{
    305311    ASSERT(_frame != nil);
    306     WebView *webView = [_page webView];
     312    WebView *webView = [self webView];
    307313    return [[webView _UIDelegateForwarder] webViewIsResizable:webView];
    308314}
     
    311317{
    312318    ASSERT(_frame != nil);
    313     WebView *webView = [_page webView];
     319    WebView *webView = [self webView];
    314320    return [[webView _UIDelegateForwarder] webViewFirstResponder:webView];
    315321}
     
    318324{
    319325    ASSERT(_frame != nil);
    320     WebView *webView = [_page webView];
     326    WebView *webView = [self webView];
    321327    [webView _pushPerformingProgrammaticFocus];
    322328    [[webView _UIDelegateForwarder] webView:webView makeFirstResponder:view];
     
    337343- (void)closeWindowSoon
    338344{
    339     WebView *parentWebView = [_page webView];
     345    WebView *parentWebView = [self webView];
    340346
    341347    // We need to remove the parent WebView from WebViewSets here, before it actually
     
    365371- (void)runJavaScriptAlertPanelWithMessage:(NSString *)message
    366372{
    367     WebView *wv = [_page webView];
     373    WebView *wv = [self webView];
    368374    id wd = [wv UIDelegate];
    369375    // Check whether delegate implements new version, then whether delegate implements old version. If neither,
     
    379385- (BOOL)runJavaScriptConfirmPanelWithMessage:(NSString *)message
    380386{
    381     WebView *wv = [_page webView];
     387    WebView *wv = [self webView];
    382388    id wd = [wv UIDelegate];
    383389    // Check whether delegate implements new version, then whether delegate implements old version. If neither,
     
    392398- (BOOL)canRunBeforeUnloadConfirmPanel
    393399{
    394     WebView *wv = [_page webView];
     400    WebView *wv = [self webView];
    395401    id wd = [wv UIDelegate];
    396402    return [wd respondsToSelector:@selector(webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:)];
     
    399405- (BOOL)runBeforeUnloadConfirmPanelWithMessage:(NSString *)message
    400406{
    401     WebView *wv = [_page webView];
     407    WebView *wv = [self webView];
    402408    id wd = [wv UIDelegate];
    403409    if ([wd respondsToSelector:@selector(webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:)])
     
    408414- (BOOL)runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText returningText:(NSString **)result
    409415{
    410     WebView *wv = [_page webView];
     416    WebView *wv = [self webView];
    411417    id wd = [wv UIDelegate];
    412418    // Check whether delegate implements new version, then whether delegate implements old version. If neither,
     
    423429- (void)addMessageToConsole:(NSDictionary *)message
    424430{
    425     WebView *wv = [_page webView];
     431    WebView *wv = [self webView];
    426432    id wd = [wv UIDelegate];
    427433    if ([wd respondsToSelector: @selector(webView:addMessageToConsole:)])
     
    436442- (void)runOpenPanelForFileButtonWithResultListener:(id<WebOpenPanelResultListener>)resultListener
    437443{
    438     WebView *wv = [_page webView];
     444    WebView *wv = [self webView];
    439445    [[wv _UIDelegateForwarder] webView:wv runOpenPanelForFileButtonWithResultListener:resultListener];
    440446}
     
    460466{
    461467    ASSERT(_frame != nil);
    462     WebView *wv = [_page webView];
     468    WebView *wv = [self webView];
    463469    [[wv _UIDelegateForwarder] webView:wv setStatusText:status];
    464470}
     
    553559        [request _web_setHTTPReferrer:[self referrer]];
    554560   
    555     WebView *webView = [_page webView];
     561    WebView *webView = [self webView];
    556562    [request setMainDocumentURL:[[[[webView mainFrame] dataSource] request] URL]];
    557563    [request _web_setHTTPUserAgent:[webView userAgentForURL:[request URL]]];
     
    644650- (void)focusWindow
    645651{
    646     [[[_page webView] _UIDelegateForwarder] webViewFocus:[_page webView]];
     652    [[[self webView] _UIDelegateForwarder] webViewFocus:[self webView]];
    647653}
    648654
     
    769775    WebFrameView *childView = [[WebFrameView alloc] initWithFrame:NSMakeRect(0,0,0,0)];
    770776    [childView setAllowsScrolling:allowsScrolling];
    771     WebFrameBridge *newBridge = [[WebFrameBridge alloc] initWithPage:_page webView:[_page webView] renderer:childRenderPart frameName:frameName view:childView];
     777    WebFrameBridge *newBridge = [[WebFrameBridge alloc] initSubframeWithRenderer:childRenderPart frameName:frameName view:childView];
    772778    [_frame _addChild:[newBridge webFrame]];
    773779    [childView release];
     
    816822- (NSString *)userAgentForURL:(NSURL *)URL
    817823{
    818     return [[_page webView] userAgentForURL:URL];
     824    return [[self webView] userAgentForURL:URL];
    819825}
    820826
     
    835841   
    836842    _inNextKeyViewOutsideWebFrameViews = YES;
    837     WebView *webView = [_page webView];
     843    WebView *webView = [self webView];
    838844    // Do not ask webView for its next key view, but rather, ask it for
    839845    // the next key view of the last view in its key view loop.
     
    858864- (NSView *)previousKeyViewOutsideWebFrameViews
    859865{
    860     WebView *webView = [_page webView];
     866    WebView *webView = [self webView];
    861867    NSView *previousKeyView = [webView previousKeyView];
    862868    return previousKeyView;
     
    865871- (BOOL)defersLoading
    866872{
    867     return [[_page webView] defersCallbacks];
     873    return [[self webView] defersCallbacks];
    868874}
    869875
    870876- (void)setDefersLoading:(BOOL)defers
    871877{
    872     [[_page webView] setDefersCallbacks:defers];
     878    [[self webView] setDefersCallbacks:defers];
    873879}
    874880
     
    969975    int errorCode = 0;
    970976
    971     WebView *wv = [_page webView];
     977    WebView *wv = [self webView];
    972978    id wd = [wv UIDelegate];
    973979
     
    11081114- (WebPreferences *)_preferences
    11091115{
    1110     WebPreferences *prefs = [[_page webView] preferences];
     1116    WebPreferences *prefs = [[self webView] preferences];
    11111117    if (prefs == nil) {
    11121118        prefs = [WebPreferences standardPreferences];
     
    12261232- (BOOL)selectWordBeforeMenuEvent
    12271233{
    1228     return [[_page webView] _selectWordBeforeMenuEvent];
     1234    return [[self webView] _selectWordBeforeMenuEvent];
    12291235}
    12301236
    12311237- (int)historyLength
    12321238{
    1233     return [[[_page webView] backForwardList] backListCount] + 1;
     1239    return [[[self webView] backForwardList] backListCount] + 1;
    12341240}
    12351241
     
    12391245        return TRUE;
    12401246
    1241     if (distance > 0 && distance <= [[[_page webView] backForwardList] forwardListCount])
     1247    if (distance > 0 && distance <= [[[self webView] backForwardList] forwardListCount])
    12421248        return TRUE;
    12431249
    1244     if (distance < 0 && -distance <= [[[_page webView] backForwardList] backListCount])
     1250    if (distance < 0 && -distance <= [[[self webView] backForwardList] backListCount])
    12451251        return TRUE;
    12461252   
     
    12531259        return;
    12541260    }
    1255     WebView *webView = [_page webView];
     1261    WebView *webView = [self webView];
    12561262    WebBackForwardList *list = [webView backForwardList];
    12571263    WebHistoryItem *item = [list itemAtIndex:distance];
     
    13751381- (void)print
    13761382{
    1377     id wd = [[_page webView] UIDelegate];
     1383    id wd = [[self webView] UIDelegate];
    13781384   
    13791385    if ([wd respondsToSelector:@selector(webView:printFrameView:)]) {
    1380         [wd webView:[_page webView] printFrameView:[_frame frameView]];
     1386        [wd webView:[self webView] printFrameView:[_frame frameView]];
    13811387    } else if ([wd respondsToSelector:@selector(webViewPrint:)]) {
    13821388        // Backward-compatible, but webViewPrint: was never public, so probably not needed.
    1383         [wd webViewPrint:[_page webView]];
     1389        [wd webViewPrint:[self webView]];
    13841390    } else {
    1385         [[WebDefaultUIDelegate sharedUIDelegate] webView:[_page webView] printFrameView:[_frame frameView]];
     1391        [[WebDefaultUIDelegate sharedUIDelegate] webView:[self webView] printFrameView:[_frame frameView]];
    13861392    }
    13871393}
     
    14121418        // hierarchy, so we have to pass the window when requesting
    14131419        // the applet.
    1414         applet = [view pollForAppletInWindow:[[_page webView] window]];
     1420        applet = [view pollForAppletInWindow:[[self webView] window]];
    14151421    }
    14161422   
     
    14241430        [(WebHTMLView *)view _updateFontPanel];
    14251431    }
    1426     [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidChangeNotification object:[_page webView]];
     1432    [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidChangeNotification object:[self webView]];
    14271433}
    14281434
     
    14331439        [(WebHTMLView *)view _selectionChanged];
    14341440    }
    1435     [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidChangeSelectionNotification object:[_page webView]];
     1441    [[NSNotificationCenter defaultCenter] postNotificationName:WebViewDidChangeSelectionNotification object:[self webView]];
    14361442}
    14371443
    14381444- (NSUndoManager *)undoManager
    14391445{
    1440     return [[_page webView] undoManager];
     1446    return [[self webView] undoManager];
    14411447}
    14421448
    14431449- (void)issueCutCommand
    14441450{
    1445     [[_page webView] cut:nil];
     1451    [[self webView] cut:nil];
    14461452}
    14471453
    14481454- (void)issueCopyCommand
    14491455{
    1450     [[_page webView] copy:nil];
     1456    [[self webView] copy:nil];
    14511457}
    14521458
    14531459- (void)issuePasteCommand
    14541460{
    1455     [[_page webView] paste:nil];
     1461    [[self webView] paste:nil];
    14561462}
    14571463
    14581464- (void)issuePasteAndMatchStyleCommand
    14591465{
    1460     [[_page webView] pasteAsPlainText:nil];
     1466    [[self webView] pasteAsPlainText:nil];
    14611467}
    14621468
     
    14711477- (BOOL)canPaste
    14721478{
    1473     return [[_page webView] _canPaste];
     1479    return [[self webView] _canPaste];
    14741480}
    14751481
     
    14861492- (NSString *)overrideMediaType
    14871493{
    1488     return [[_page webView] mediaStyle];
     1494    return [[self webView] mediaStyle];
    14891495}
    14901496
    14911497- (BOOL)isEditable
    14921498{
    1493     return [[_page webView] isEditable];
     1499    return [[self webView] isEditable];
    14941500}
    14951501
    14961502- (BOOL)shouldChangeSelectedDOMRange:(DOMRange *)currentRange toDOMRange:(DOMRange *)proposedRange affinity:(NSSelectionAffinity)selectionAffinity stillSelecting:(BOOL)flag
    14971503{
    1498     return [[_page webView] _shouldChangeSelectedDOMRange:currentRange toDOMRange:proposedRange affinity:selectionAffinity stillSelecting:flag];
     1504    return [[self webView] _shouldChangeSelectedDOMRange:currentRange toDOMRange:proposedRange affinity:selectionAffinity stillSelecting:flag];
    14991505}
    15001506
    15011507- (BOOL)shouldBeginEditing:(DOMRange *)range
    15021508{
    1503     return [[_page webView] _shouldBeginEditingInDOMRange:range];
     1509    return [[self webView] _shouldBeginEditingInDOMRange:range];
    15041510}
    15051511
    15061512- (BOOL)shouldEndEditing:(DOMRange *)range
    15071513{
    1508     return [[_page webView] _shouldEndEditingInDOMRange:range];
     1514    return [[self webView] _shouldEndEditingInDOMRange:range];
    15091515}
    15101516
     
    15211527- (void)windowObjectCleared
    15221528{
    1523     WebView *wv = [_page webView];
     1529    WebView *wv = [self webView];
    15241530    [[wv _frameLoadDelegateForwarder] webView:wv windowScriptObjectAvailable:[self windowScriptObject]];
    15251531    if ([wv scriptDebugDelegate]) {
     
    15301536- (int)spellCheckerDocumentTag
    15311537{
    1532     return [[_page webView] spellCheckerDocumentTag];
     1538    return [[self webView] spellCheckerDocumentTag];
    15331539}
    15341540
    15351541- (BOOL)isContinuousSpellCheckingEnabled
    15361542{
    1537     return [[_page webView] isContinuousSpellCheckingEnabled];
     1543    return [[self webView] isContinuousSpellCheckingEnabled];
    15381544}
    15391545
     
    15411547{
    15421548    [_frame _didFirstLayout];
    1543     WebView *wv = [_page webView];
     1549    WebView *wv = [self webView];
    15441550    [[wv _frameLoadDelegateForwarder] webView:wv didFirstLayoutInFrame:_frame];
    15451551}
     
    15521558- (void)dashboardRegionsChanged:(NSMutableDictionary *)regions
    15531559{
    1554     WebView *wv = [_page webView];
     1560    WebView *wv = [self webView];
    15551561    id wd = [wv UIDelegate];
    15561562   
     
    16711677    }
    16721678
    1673     WebView *currentWebView = [_page webView];
     1679    WebView *currentWebView = [self webView];
    16741680    id UIDelegate = [currentWebView UIDelegate];
    16751681
     
    16871693- (BOOL)canRunModal
    16881694{
    1689     WebView *webView = [_page webView];
     1695    WebView *webView = [self webView];
    16901696    id UIDelegate = [webView UIDelegate];
    16911697    return [UIDelegate respondsToSelector:@selector(webViewRunModal:)];
     
    17021708        return;
    17031709
    1704     WebView *webView = [_page webView];
     1710    WebView *webView = [self webView];
    17051711    if ([webView defersCallbacks]) {
    17061712        ERROR("tried to run modal in a view when it was deferring callbacks -- should never happen");
  • trunk/WebKit/WebCoreSupport/WebPageBridge.m

    r12638 r12791  
    2727 */
    2828
    29 #import <WebKit/WebPageBridge.h>
    30 #import <WebKit/WebFrameBridge.h>
    31 #import <WebKit/WebView.h>
     29#import "WebPageBridge.h"
     30
     31#import "WebFrameBridge.h"
     32#import "WebView.h"
    3233
    3334@implementation WebPageBridge
     
    3536- (id)initWithMainFrameName:(NSString *)frameName webView:(WebView *)webView frameView:(WebFrameView *)frameView
    3637{
    37     self = [super initWithMainFrame:[[[WebFrameBridge alloc] initWithPage:self webView:webView renderer:nil frameName:frameName view:frameView] autorelease]];
    38     if (self)
     38    self = [super init];
     39    if (self) {
    3940        _webView = webView;
     41        WebFrameBridge *mainFrame = [[WebFrameBridge alloc] initMainFrameWithPage:self frameName:frameName view:frameView];
     42        [self setMainFrame:mainFrame];
     43        [mainFrame release];
     44    }
    4045    return self;
    4146}
Note: See TracChangeset for help on using the changeset viewer.