Changeset 30980 in webkit


Ignore:
Timestamp:
Mar 11, 2008 10:27:19 PM (16 years ago)
Author:
Darin Adler
Message:

WebCore:

Reviewed by Sam.

  • remove all bridge-related things from WebCore except the bridge itself
  • WebCore.base.exp: Removed the bridge and setBridge functions.
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::detachFromParent): Removed call to the bridge's close method.
  • page/Frame.cpp: (WebCore::Frame::~Frame): Removed call to setBridge(0). (WebCore::FramePrivate::FramePrivate): Removed initialization of m_bridge.
  • page/Frame.h: Removed setBridge and bridge functions.
  • page/FramePrivate.h: Removed m_bridge pointer.
  • page/mac/FrameMac.mm: Removed setBridge and bridge functions.
  • page/mac/WebCoreFrameBridge.h: Added setWebCoreFrame: method. Removed bridgeForDOMDocument: and clearFrame methods.
  • page/mac/WebCoreFrameBridge.mm: Ditto. (-[WebCoreFrameBridge close]): Changed to set m_frame to 0 directly. (-[WebCoreFrameBridge setWebCoreFrame:]): Added.

WebKit/mac:

Reviewed by Sam.

  • remove all bridge-related things from WebCore except the bridge itself
  • DOM/WebDOMOperations.mm: (-[DOMNode _bridge]): Reimplemented to not use the bridgeForDOMDocument: method.
  • DefaultDelegates/WebDefaultContextMenuDelegate.mm: Removed unneeded include.
  • Plugins/WebPluginController.mm: Ditto.
  • WebCoreSupport/WebFrameBridge.h: Removed unneeded things, including the init and close methods. Added a setWebFrame: method.
  • WebCoreSupport/WebFrameBridge.mm: (-[WebFrameBridge setWebFrame:]): Added.
  • WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::frameLoaderDestroyed): Added an assertion. (WebFrameLoaderClient::detachedFromParent4): Moved the call to close on the bridge here. Soon we will be able to remove this entirely! (WebFrameLoaderClient::createFrame): Rewrote this to use the method moved into WebFrame from the bridge.
  • WebView/WebFrame.mm: (-[WebFramePrivate dealloc]): Added code to release the bridge, because it's now owned by the frame. (-[WebFramePrivate finalize]): Added this missing method. We'd leak the script debugger under GC without this! (kit): Rewrote the function that maps from a WebCore::Frame to a WebFrame to use WebFrameLoaderClient instead of the bridge. (+[WebFrame _createFrameWithPage:frameName:frameView:ownerElement:]): Added. This is code that used to live in the bridge's init function. (+[WebFrame _createMainFrameWithPage:frameName:frameView:]): Ditto. (+[WebFrame WebCore::_createSubframeWithOwnerElement:frameName:frameView:]): Ditto. (-[WebFrame _initWithWebFrameView:webView:bridge:]): Retain the bridge, since the WebView is now the bridge's owner. (-[WebFrame _updateBackground]): Changed this one call site that was calling the WebCore::Frame::bridge function directly to use the kit function instead. (-[WebFrame dealloc]): Added code to clear the WebFrame pointer in the bridge. This code won't last long -- we're eliminating the bridge soon. (-[WebFrame finalize]): Ditto.
  • WebView/WebFrameInternal.h: Added a coreFrame backpointer and two new methods for creating frames.
  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]): Rewrote this to use the method moved into WebFrame from the bridge. Gets rid of the unpleasant idiom where we have to allocate a WebFrameBridge and then immediately release it.
Location:
trunk
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r30979 r30980  
     12008-03-11  Darin Adler  <darin@apple.com>
     2
     3        Reviewed by Sam.
     4
     5        - remove all bridge-related things from WebCore except the bridge itself
     6
     7        * WebCore.base.exp: Removed the bridge and setBridge functions.
     8
     9        * loader/FrameLoader.cpp:
     10        (WebCore::FrameLoader::detachFromParent): Removed call to the bridge's
     11        close method.
     12
     13        * page/Frame.cpp:
     14        (WebCore::Frame::~Frame): Removed call to setBridge(0).
     15        (WebCore::FramePrivate::FramePrivate): Removed initialization of m_bridge.
     16        * page/Frame.h: Removed setBridge and bridge functions.
     17        * page/FramePrivate.h: Removed m_bridge pointer.
     18        * page/mac/FrameMac.mm: Removed setBridge and bridge functions.
     19
     20        * page/mac/WebCoreFrameBridge.h: Added setWebCoreFrame: method.
     21        Removed bridgeForDOMDocument: and clearFrame methods.
     22        * page/mac/WebCoreFrameBridge.mm: Ditto.
     23        (-[WebCoreFrameBridge close]): Changed to set m_frame to 0 directly.
     24        (-[WebCoreFrameBridge setWebCoreFrame:]): Added.
     25
    1262008-03-11  Darin Adler  <darin@apple.com>
    227
  • trunk/WebCore/WebCore.base.exp

    r30973 r30980  
    407407__ZN7WebCore5Frame29cleanupScriptObjectsForPluginEPv
    408408__ZN7WebCore5Frame4initEv
    409 __ZN7WebCore5Frame9setBridgeEP18WebCoreFrameBridge
    410409__ZN7WebCore5FrameC1EPNS_4PageEPNS_21HTMLFrameOwnerElementEPNS_17FrameLoaderClientE
    411410__ZN7WebCore5Image10getNSImageEv
     
    669668__ZNK7WebCore5Frame4treeEv
    670669__ZNK7WebCore5Frame4viewEv
    671 __ZNK7WebCore5Frame6bridgeEv
    672670__ZNK7WebCore5Frame6editorEv
    673671__ZNK7WebCore5Frame6loaderEv
  • trunk/WebCore/loader/FrameLoader.cpp

    r30949 r30980  
    32013201        m_frame->pageDestroyed();
    32023202    }
    3203 #if PLATFORM(MAC)
    3204     [m_frame->bridge() close];
    3205 #endif
    32063203    m_client->detachedFromParent4();
    32073204}
  • trunk/WebCore/page/Frame.cpp

    r30923 r30980  
    156156    setView(0);
    157157    loader()->clearRecordedFormValues();
    158 
    159 #if PLATFORM(MAC)
    160     setBridge(0);
    161 #endif
    162    
    163158    loader()->cancelAndClear();
    164159   
     
    18881883#if PLATFORM(MAC)
    18891884    , m_windowScriptObject(nil)
    1890     , m_bridge(nil)
    18911885#endif
    18921886{
  • trunk/WebCore/page/Frame.h

    r30975 r30980  
    4949#if PLATFORM(MAC)
    5050#ifdef __OBJC__
    51 @class WebCoreFrameBridge;
    5251@class WebScriptObject;
    5352#else
     
    5655class NSMutableDictionary;
    5756class NSString;
    58 class WebCoreFrameBridge;
    5957class WebScriptObject;
    6058typedef int NSWritingDirection;
     
    8886    void init();
    8987
    90 #if PLATFORM(MAC)   
    91     void setBridge(WebCoreFrameBridge*);
    92     WebCoreFrameBridge* bridge() const;
    93 #endif
    94 
    9588    Page* page() const;
    9689    HTMLFrameOwnerElement* ownerElement() const;
  • trunk/WebCore/page/FramePrivate.h

    r30897 r30980  
    4646#if PLATFORM(MAC)
    4747#ifdef __OBJC__
    48 @class WebCoreFrameBridge;
    4948@class WebScriptObject;
    5049#else
    51 class WebCoreFrameBridge;
    5250class WebScriptObject;
    5351#endif
     
    130128#if PLATFORM(MAC)
    131129        RetainPtr<WebScriptObject> m_windowScriptObject;
    132         WebCoreFrameBridge* m_bridge;
    133130#endif
    134131    };
  • trunk/WebCore/page/mac/FrameMac.mm

    r30976 r30980  
    8383#import "TextResourceDecoder.h"
    8484#import "UserStyleSheetLoader.h"
    85 #import "WebCoreFrameBridge.h"
    8685#import "WebCoreViewFactory.h"
    8786#import "WebDashboardRegion.h"
     
    114113using namespace EventNames;
    115114using namespace HTMLNames;
    116 
    117 void Frame::setBridge(WebCoreFrameBridge* bridge)
    118 {
    119     if (d->m_bridge == bridge)
    120         return;
    121 
    122     if (!bridge) {
    123         [d->m_bridge clearFrame];
    124         HardRelease(d->m_bridge);
    125         d->m_bridge = nil;
    126         return;
    127     }
    128     HardRetain(bridge);
    129     HardRelease(d->m_bridge);
    130     d->m_bridge = bridge;
    131 }
    132 
    133 WebCoreFrameBridge* Frame::bridge() const
    134 {
    135     return d->m_bridge;
    136 }
    137115
    138116// Either get cached regexp or build one that matches any of the labels.
  • trunk/WebCore/page/mac/WebCoreFrameBridge.h

    r30975 r30980  
    5555}
    5656
     57- (void)setWebCoreFrame:(WebCore::Frame*)webCoreFrame;
    5758- (WebCore::Frame*)_frame; // underscore to prevent conflict with -[NSView frame]
    58 
    59 + (WebCoreFrameBridge *)bridgeForDOMDocument:(DOMDocument *)document;
    6059
    6160- (id)init;
    6261- (void)close;
    63 
    64 - (void)clearFrame;
    6562
    6663- (NSURL *)baseURL;
  • trunk/WebCore/page/mac/WebCoreFrameBridge.mm

    r30976 r30980  
    216216@implementation WebCoreFrameBridge
    217217
    218 static inline WebCoreFrameBridge *bridge(Frame *frame)
    219 {
    220     if (!frame)
    221         return nil;
    222     return frame->bridge();
    223 }
    224 
    225218- (NSString *)domain
    226219{
     
    231224}
    232225
    233 + (WebCoreFrameBridge *)bridgeForDOMDocument:(DOMDocument *)document
    234 {
    235     return bridge([document _document]->frame());
    236 }
    237 
    238226- (id)init
    239227{
     
    268256- (void)close
    269257{
    270     [self clearFrame];
     258    m_frame = 0;
    271259    _closed = YES;
    272260}
     
    284272        m_frame->loader()->addData((const char *)[data bytes], [data length]);
    285273    }
    286 }
    287 
    288 - (void)clearFrame
    289 {
    290     m_frame = 0;
    291274}
    292275
     
    11801163// -------------------
    11811164
     1165- (void)setWebCoreFrame:(Frame*)webCoreFrame
     1166{
     1167    m_frame = webCoreFrame;
     1168}
     1169
    11821170- (Frame*)_frame
    11831171{
  • trunk/WebKit/mac/ChangeLog

    r30976 r30980  
     12008-03-11  Darin Adler  <darin@apple.com>
     2
     3        Reviewed by Sam.
     4
     5        - remove all bridge-related things from WebCore except the bridge itself
     6
     7        * DOM/WebDOMOperations.mm:
     8        (-[DOMNode _bridge]): Reimplemented to not use the bridgeForDOMDocument: method.
     9
     10        * DefaultDelegates/WebDefaultContextMenuDelegate.mm: Removed unneeded include.
     11
     12        * Plugins/WebPluginController.mm: Ditto.
     13
     14        * WebCoreSupport/WebFrameBridge.h: Removed unneeded things, including the
     15        init and close methods. Added a setWebFrame: method.
     16
     17        * WebCoreSupport/WebFrameBridge.mm:
     18        (-[WebFrameBridge setWebFrame:]): Added.
     19
     20        * WebCoreSupport/WebFrameLoaderClient.mm:
     21        (WebFrameLoaderClient::frameLoaderDestroyed): Added an assertion.
     22        (WebFrameLoaderClient::detachedFromParent4): Moved the call to close on the
     23        bridge here. Soon we will be able to remove this entirely!
     24        (WebFrameLoaderClient::createFrame): Rewrote this to use the method moved
     25        into WebFrame from the bridge.
     26
     27        * WebView/WebFrame.mm:
     28        (-[WebFramePrivate dealloc]): Added code to release the bridge, because it's
     29        now owned by the frame.
     30        (-[WebFramePrivate finalize]): Added this missing method. We'd leak the script
     31        debugger under GC without this!
     32        (kit): Rewrote the function that maps from a WebCore::Frame to a WebFrame to
     33        use WebFrameLoaderClient instead of the bridge.
     34        (+[WebFrame _createFrameWithPage:frameName:frameView:ownerElement:]): Added.
     35        This is code that used to live in the bridge's init function.
     36        (+[WebFrame _createMainFrameWithPage:frameName:frameView:]): Ditto.
     37        (+[WebFrame WebCore::_createSubframeWithOwnerElement:frameName:frameView:]): Ditto.
     38        (-[WebFrame _initWithWebFrameView:webView:bridge:]): Retain the bridge, since
     39        the WebView is now the bridge's owner.
     40        (-[WebFrame _updateBackground]): Changed this one call site that was calling the
     41        WebCore::Frame::bridge function directly to use the kit function instead.
     42        (-[WebFrame dealloc]): Added code to clear the WebFrame pointer in the bridge.
     43        This code won't last long -- we're eliminating the bridge soon.
     44        (-[WebFrame finalize]): Ditto.
     45
     46        * WebView/WebFrameInternal.h: Added a coreFrame backpointer and two new methods
     47        for creating frames.
     48
     49        * WebView/WebView.mm:
     50        (-[WebView _commonInitializationWithFrameName:groupName:]): Rewrote this to use
     51        the method moved into WebFrame from the bridge. Gets rid of the unpleasant idiom
     52        where we have to allocate a WebFrameBridge and then immediately release it.
     53
    1542008-03-11  Darin Adler  <darin@apple.com>
    255
  • trunk/WebKit/mac/DOM/WebDOMOperations.mm

    r28568 r30980  
    2727 */
    2828
    29 #import <WebKit/WebDOMOperationsPrivate.h>
    30 
     29#import "WebDOMOperationsPrivate.h"
     30
     31#import "WebArchiver.h"
     32#import "WebDataSourcePrivate.h"
     33#import "WebFrameBridge.h"
     34#import "WebFrameInternal.h"
     35#import "WebFramePrivate.h"
     36#import "WebKitNSStringExtras.h"
     37#import <JavaScriptCore/Assertions.h>
     38#import <WebCore/Document.h>
    3139#import <WebKit/DOMExtensions.h>
    3240#import <WebKit/DOMHTML.h>
    33 #import <JavaScriptCore/Assertions.h>
    34 #import <WebKit/WebFrameBridge.h>
    35 #import <WebKit/WebDataSourcePrivate.h>
    36 #import <WebKit/WebFramePrivate.h>
    37 #import <WebKit/WebKitNSStringExtras.h>
    38 #import <WebKit/WebArchiver.h>
    3941
    4042#if ENABLE(SVG)
     
    4244#endif
    4345
     46using namespace WebCore;
     47
    4448@implementation DOMNode (WebDOMNodeOperations)
    4549
    4650- (WebFrameBridge *)_bridge
    4751{
    48     return (WebFrameBridge *)[WebFrameBridge bridgeForDOMDocument:[self ownerDocument]];
     52    Document* document = core(self)->document();
     53    if (!document)
     54        return nil;
     55    Frame* frame = document->frame();
     56    if (!frame)
     57        return nil;
     58    return [kit(frame) _bridge];
    4959}
    5060
  • trunk/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm

    r23717 r30980  
    5050#import <WebCore/FrameLoader.h>
    5151#import <WebCore/KURL.h>
    52 #import <WebCore/WebCoreFrameBridge.h>
    5352#import <WebKit/DOM.h>
    5453#import <WebKit/DOMPrivate.h>
  • trunk/WebKit/mac/Plugins/WebPluginController.mm

    r29581 r30980  
    3535#import <WebCore/ResourceRequest.h>
    3636#import <WebCore/PlatformString.h>
    37 #import <WebCore/WebCoreFrameBridge.h>
    3837#import <WebCore/DocumentLoader.h>
    3938#import <WebKit/WebDataSourceInternal.h>
  • trunk/WebKit/mac/WebCoreSupport/WebFrameBridge.h

    r30975 r30980  
    2929#import <WebCore/WebCoreFrameBridge.h>
    3030
    31 namespace WebCore {
    32     class HTMLFrameOwnerElement;
    33     class Page;
    34 }
    35 
    3631@class WebFrame;
    37 @class WebFrameView;
    3832
    3933@interface WebFrameBridge : WebCoreFrameBridge {
    4034@public
    41     WebFrame *_frame;
     35    WebFrame *_webFrame;
    4236}
    43 - (id)initMainFrameWithPage:(WebCore::Page*)page frameName:(const WebCore::String&)name frameView:(WebFrameView *)frameView;
    44 - (id)initSubframeWithOwnerElement:(WebCore::HTMLFrameOwnerElement*)ownerElement frameName:(const WebCore::String&)name frameView:(WebFrameView *)frameView;
    45 - (void)close;
     37- (void)setWebFrame:(WebFrame *)webFrame;
    4638- (WebFrame *)webFrame;
    4739@end
  • trunk/WebKit/mac/WebCoreSupport/WebFrameBridge.mm

    r30975 r30980  
    2929#import "WebFrameBridge.h"
    3030
    31 #import "WebFrameInternal.h"
    32 #import "WebFrameLoaderClient.h"
    33 #import "WebKitStatisticsPrivate.h"
    34 #import "WebView.h"
    35 #import <WebCore/Frame.h>
    36 #import <WebCore/FrameTree.h>
    37 #import <WebCore/HTMLFrameOwnerElement.h>
    38 
    39 using namespace WebCore;
     31#import "WebFrame.h"
    4032
    4133@implementation WebFrameBridge
    4234
    43 - (void)finishInitializingWithPage:(Page*)page frameName:(const String&)name frameView:(WebFrameView *)frameView ownerElement:(HTMLFrameOwnerElement*)ownerElement
     35- (void)setWebFrame:(WebFrame *)webFrame;
    4436{
    45     ++WebBridgeCount;
    46 
    47     WebView *webView = kit(page);
    48 
    49     _frame = [[WebFrame alloc] _initWithWebFrameView:frameView webView:webView bridge:self];
    50 
    51     m_frame = new Frame(page, ownerElement, new WebFrameLoaderClient(_frame));
    52     m_frame->setBridge(self);
    53     m_frame->tree()->setName(name);
    54     m_frame->init();
    55 
    56     [self setTextSizeMultiplier:[webView textSizeMultiplier]];
    57 }
    58 
    59 - (id)initMainFrameWithPage:(Page*)page frameName:(const String&)name frameView:(WebFrameView *)frameView
    60 {
    61     self = [super init];
    62     [self finishInitializingWithPage:page frameName:name frameView:frameView ownerElement:0];
    63     return self;
    64 }
    65 
    66 - (id)initSubframeWithOwnerElement:(HTMLFrameOwnerElement*)ownerElement frameName:(const String&)name frameView:(WebFrameView *)frameView
    67 {
    68     self = [super init];
    69     [self finishInitializingWithPage:ownerElement->document()->frame()->page() frameName:name frameView:frameView ownerElement:ownerElement];
    70     return self;
     37    _webFrame = webFrame;
    7138}
    7239
    7340- (WebFrame *)webFrame
    7441{
    75     return _frame;
    76 }
    77 
    78 - (void)close
    79 {
    80     [super close];
    81     if (!_frame)
    82         return;
    83     --WebBridgeCount;
    84     [_frame release];
    85     _frame = nil;
     42    return _webFrame;
    8643}
    8744
  • trunk/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm

    r30976 r30980  
    103103#import <WebCore/ResourceRequest.h>
    104104#import <WebCore/SharedBuffer.h>
    105 #import <WebCore/WebCoreFrameBridge.h>
    106105#import <WebCore/WebCoreObjCExtras.h>
    107106#import <WebCore/Widget.h>
     
    147146void WebFrameLoaderClient::frameLoaderDestroyed()
    148147{
     148    ASSERT(!m_webFrame->_private->bridge);
    149149    delete this;
    150150}
     
    213213void WebFrameLoaderClient::detachedFromParent4()
    214214{
     215    [m_webFrame->_private->bridge close];
    215216    m_webFrame->_private->bridge = nil;
    216217}
     
    11341135    [childView _setMarginHeight:marginHeight];
    11351136
    1136     WebFrameBridge *newBridge = [[WebFrameBridge alloc] initSubframeWithOwnerElement:ownerElement frameName:name frameView:childView];
     1137    RefPtr<Frame> newCoreFrame = [WebFrame _createSubframeWithOwnerElement:ownerElement frameName:name frameView:childView];
     1138
    11371139    [childView release];
    11381140
    1139     if (!newBridge)
     1141    if (!newCoreFrame)
    11401142        return 0;
    11411143
    1142     [m_webFrame.get() _addChild:[newBridge webFrame]];
    1143     [newBridge release];
    1144 
    1145     RefPtr<Frame> newFrame = [newBridge _frame];
    1146    
    1147     [m_webFrame.get() _loadURL:url referrer:referrer intoChild:kit(newFrame.get())];
     1144    WebFrame *newFrame = kit(newCoreFrame.get());
     1145
     1146    [m_webFrame.get() _addChild:newFrame];   
     1147    [m_webFrame.get() _loadURL:url referrer:referrer intoChild:newFrame];
    11481148
    11491149    // The frame's onload handler may have removed it from the document.
    1150     if (!newFrame->tree()->parent())
     1150    if (!newCoreFrame->tree()->parent())
    11511151        return 0;
    11521152
    1153     return newFrame.get();
     1153    return newCoreFrame.release();
    11541154
    11551155    END_BLOCK_OBJC_EXCEPTIONS;
  • trunk/WebKit/mac/WebView/WebFrame.mm

    r30923 r30980  
    137137- (void)dealloc
    138138{
     139    [bridge release];
    139140    [webFrameView release];
    140    
     141
    141142    delete scriptDebugger;
    142143
    143144    [super dealloc];
     145}
     146
     147- (void)finalize
     148{
     149    delete scriptDebugger;
     150
     151    [super finalize];
    144152}
    145153
     
    238246@implementation WebFrame (WebInternal)
    239247
    240 static inline WebFrame *frame(WebCoreFrameBridge *bridge)
    241 {
    242     return ((WebFrameBridge *)bridge)->_frame;
    243 }
    244 
    245248Frame* core(WebFrame *frame)
    246249{
     
    256259WebFrame *kit(Frame* frame)
    257260{
    258     return frame ? ((WebFrameBridge *)frame->bridge())->_frame : nil;
     261    return frame ? static_cast<WebFrameLoaderClient*>(frame->loader()->client())->webFrame() : nil;
    259262}
    260263
     
    275278        return nil;
    276279    return kit(coreFrame->page());
     280}
     281
     282+ (PassRefPtr<Frame>)_createFrameWithPage:(Page*)page frameName:(const String&)name frameView:(WebFrameView *)frameView ownerElement:(HTMLFrameOwnerElement*)ownerElement
     283{
     284    ++WebBridgeCount;
     285
     286    WebView *webView = kit(page);
     287
     288    WebFrameBridge *bridge = [[WebFrameBridge alloc] init];
     289    WebFrame *frame = [[self alloc] _initWithWebFrameView:frameView webView:webView bridge:bridge];
     290    RefPtr<Frame> coreFrame = new Frame(page, ownerElement, new WebFrameLoaderClient(frame));
     291    [frame release];
     292    [bridge setWebCoreFrame:coreFrame.get()];
     293    [bridge release];
     294
     295    coreFrame->tree()->setName(name);
     296    coreFrame->init();
     297
     298    [bridge setTextSizeMultiplier:[webView textSizeMultiplier]];
     299
     300    return coreFrame.release();
     301}
     302
     303+ (void)_createMainFrameWithPage:(Page*)page frameName:(const String&)name frameView:(WebFrameView *)frameView
     304{
     305    [self _createFrameWithPage:page frameName:name frameView:frameView ownerElement:0];
     306}
     307
     308+ (PassRefPtr<WebCore::Frame>)_createSubframeWithOwnerElement:(HTMLFrameOwnerElement*)ownerElement frameName:(const String&)name frameView:(WebFrameView *)frameView
     309{
     310    return [self _createFrameWithPage:ownerElement->document()->frame()->page() frameName:name frameView:frameView ownerElement:ownerElement];
    277311}
    278312
     
    390424
    391425    _private = [[WebFramePrivate alloc] init];
    392     _private->bridge = bridge;
     426    _private->bridge = [bridge retain];
    393427
    394428    if (fv) {
     
    421455    Frame* coreFrame = core(self);
    422456    for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame)) {
    423         WebFrameBridge *bridge = (WebFrameBridge *)frame->bridge();
    424         WebFrame *webFrame = [bridge webFrame];
     457        WebFrame *webFrame = kit(frame);
     458        WebFrameBridge *bridge = [webFrame _bridge];
    425459        // Never call setDrawsBackground:YES here on the scroll view or the background color will
    426460        // flash between pages loads. setDrawsBackground:YES will be called in _frameLoadCompleted.
     
    676710- (void)dealloc
    677711{
    678     ASSERT(_private->bridge == nil);
     712    [_private->bridge setWebFrame:nil];
    679713    [_private release];
    680714    --WebFrameCount;
     
    684718- (void)finalize
    685719{
    686     ASSERT(_private->bridge == nil);
     720    [_private->bridge setWebFrame:nil];
    687721    --WebFrameCount;
    688722    [super finalize];
  • trunk/WebKit/mac/WebView/WebFrameInternal.h

    r30923 r30980  
    5858    class HistoryItem;
    5959    class HTMLElement;
     60    class HTMLFrameOwnerElement;
    6061    class Node;
    6162    class Page;
     
    9596@interface WebFramePrivate : NSObject {
    9697@public
     98    WebCore::Frame* coreFrame;
    9799    WebFrameView *webFrameView;
    98100    WebFrameBridge *bridge;
     
    107109
    108110@interface WebFrame (WebInternal)
     111
     112+ (void)_createMainFrameWithPage:(WebCore::Page*)page frameName:(const WebCore::String&)name frameView:(WebFrameView *)frameView;
     113+ (PassRefPtr<WebCore::Frame>)_createSubframeWithOwnerElement:(WebCore::HTMLFrameOwnerElement*)ownerElement frameName:(const WebCore::String&)name frameView:(WebFrameView *)frameView;
    109114
    110115- (void)_updateBackground;
  • trunk/WebKit/mac/WebView/WebView.mm

    r30976 r30980  
    113113#import <WebCore/Settings.h>
    114114#import <WebCore/TextResourceDecoder.h>
    115 #import <WebCore/WebCoreFrameBridge.h>
    116115#import <WebCore/WebCoreObjCExtras.h>
    117116#import <WebCore/WebCoreTextRenderer.h>
     
    18201819
    18211820    _private->page = new Page(new WebChromeClient(self), new WebContextMenuClient(self), new WebEditorClient(self), new WebDragClient(self), new WebInspectorClient(self));
    1822     [[[WebFrameBridge alloc] initMainFrameWithPage:_private->page frameName:frameName frameView:frameView] release];
     1821    [WebFrame _createMainFrameWithPage:_private->page frameName:frameName frameView:frameView];
    18231822
    18241823#ifndef BUILDING_ON_TIGER
Note: See TracChangeset for help on using the changeset viewer.