Changeset 23573 in webkit
- Timestamp:
- Jun 18, 2007 4:04:07 PM (17 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 3 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r23567 r23573 1 2007-06-18 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Geoff. 4 5 Patch for http://bugs.webkit.org/show_bug.cgi?id=14211 6 Move the BarInfo object out of the JS bindings 7 8 * DerivedSources.make: 9 * WebCore.pro: 10 * WebCore.vcproj/WebCore.vcproj: 11 * WebCore.xcodeproj/project.pbxproj: 12 * bindings/js/kjs_window.cpp: 13 (KJS::WindowPrivate::WindowPrivate): 14 (KJS::Window::mark): 15 (KJS::Window::getValueProperty): 16 (KJS::Window::clearHelperObjectProperties): 17 (KJS::Window::disconnectFrame): 18 * bindings/js/kjs_window.h: 19 (KJS::Window::): 20 * page/BarInfo.cpp: Added. 21 (WebCore::BarInfo::BarInfo): 22 (WebCore::BarInfo::disconnectFrame): 23 (WebCore::BarInfo::visible): 24 * page/BarInfo.h: Added. 25 (WebCore::BarInfo::): 26 * page/BarInfo.idl: Added. 27 * page/DOMWindow.cpp: 28 (WebCore::DOMWindow::~DOMWindow): 29 (WebCore::DOMWindow::disconnectFrame): 30 (WebCore::DOMWindow::locationbar): 31 (WebCore::DOMWindow::menubar): 32 (WebCore::DOMWindow::personalbar): 33 (WebCore::DOMWindow::scrollbars): 34 (WebCore::DOMWindow::statusbar): 35 (WebCore::DOMWindow::toolbar): 36 * page/DOMWindow.h: 37 * page/DOMWindow.idl: 38 1 39 2007-06-18 Sam Weinig <sam@webkit.org> 2 40 -
trunk/WebCore/DerivedSources.make
r23557 r23573 300 300 HTMLEntityNames.c \ 301 301 JSAttr.h \ 302 JSBarInfo.h \ 302 303 JSCDATASection.h \ 303 304 JSCSSCharsetRule.h \ -
trunk/WebCore/WebCore.pro
r23564 r23573 257 257 html/HTMLTitleElement.idl \ 258 258 html/HTMLUListElement.idl \ 259 page/BarInfo.idl \ 259 260 page/DOMWindow.idl \ 260 261 xml/DOMParser.idl \ … … 558 559 loader/TextDocument.cpp \ 559 560 loader/TextResourceDecoder.cpp \ 561 page/BarInfo.cpp \ 560 562 page/Chrome.cpp \ 561 563 page/ContextMenuController.cpp \ -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r23560 r23573 348 348 </File> 349 349 <File 350 RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSBarInfo.cpp" 351 > 352 </File> 353 <File 354 RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSBarInfo.h" 355 > 356 </File> 357 <File 350 358 RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSCanvasGradient.cpp" 351 359 > … … 2338 2346 Name="page" 2339 2347 > 2348 <File 2349 RelativePath="..\page\BarInfo.cpp" 2350 > 2351 </File> 2352 <File 2353 RelativePath="..\page\BarInfo.h" 2354 > 2355 </File> 2340 2356 <File 2341 2357 RelativePath="..\page\Chrome.cpp" -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r23557 r23573 2735 2735 BC06EE040BFD71AA00856E9D /* JSHTMLTableElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC06EE020BFD71AA00856E9D /* JSHTMLTableElement.cpp */; }; 2736 2736 BC06EE050BFD71AA00856E9D /* JSHTMLTableElement.h in Headers */ = {isa = PBXBuildFile; fileRef = BC06EE030BFD71AA00856E9D /* JSHTMLTableElement.h */; }; 2737 BC124EE70C2641CD009E2349 /* BarInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC124EE40C2641CD009E2349 /* BarInfo.cpp */; }; 2738 BC124EE80C2641CD009E2349 /* BarInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BC124EE50C2641CD009E2349 /* BarInfo.h */; }; 2739 BC124EE90C2641CD009E2349 /* BarInfo.idl in Resources */ = {isa = PBXBuildFile; fileRef = BC124EE60C2641CD009E2349 /* BarInfo.idl */; }; 2740 BC124EFF0C26447A009E2349 /* JSBarInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC124EFD0C26447A009E2349 /* JSBarInfo.cpp */; }; 2741 BC124F000C26447A009E2349 /* JSBarInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BC124EFE0C26447A009E2349 /* JSBarInfo.h */; }; 2737 2742 BC17F9660B64EBB8004A65CB /* JSHTMLSelectElementCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC17F9650B64EBB8004A65CB /* JSHTMLSelectElementCustom.cpp */; }; 2738 2743 BC18C5D00B2A886F0018461D /* TextBreakIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = BC18C5CE0B2A886F0018461D /* TextBreakIterator.h */; }; … … 6028 6033 BC06F24B06D18A7E004A6FA3 /* XSLTProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XSLTProcessor.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 6029 6034 BC06F24C06D18A7E004A6FA3 /* XSLTProcessor.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = XSLTProcessor.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 6035 BC124EE40C2641CD009E2349 /* BarInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BarInfo.cpp; sourceTree = "<group>"; }; 6036 BC124EE50C2641CD009E2349 /* BarInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BarInfo.h; sourceTree = "<group>"; }; 6037 BC124EE60C2641CD009E2349 /* BarInfo.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = BarInfo.idl; sourceTree = "<group>"; }; 6038 BC124EFD0C26447A009E2349 /* JSBarInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSBarInfo.cpp; sourceTree = "<group>"; }; 6039 BC124EFE0C26447A009E2349 /* JSBarInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSBarInfo.h; sourceTree = "<group>"; }; 6030 6040 BC17F9650B64EBB8004A65CB /* JSHTMLSelectElementCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLSelectElementCustom.cpp; sourceTree = "<group>"; }; 6031 6041 BC18C5CE0B2A886F0018461D /* TextBreakIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TextBreakIterator.h; sourceTree = "<group>"; }; … … 6471 6481 isa = PBXGroup; 6472 6482 children = ( 6483 BC124EFD0C26447A009E2349 /* JSBarInfo.cpp */, 6484 BC124EFE0C26447A009E2349 /* JSBarInfo.h */, 6473 6485 65DF31D809D1C122000BE325 /* JSAttr.cpp */, 6474 6486 65DF31D909D1C123000BE325 /* JSAttr.h */, … … 7199 7211 93C09A820B064F05005ABD4D /* mac */, 7200 7212 8538F0000AD71770006A81D1 /* AbstractView.idl */, 7213 BC124EE40C2641CD009E2349 /* BarInfo.cpp */, 7214 BC124EE50C2641CD009E2349 /* BarInfo.h */, 7215 BC124EE60C2641CD009E2349 /* BarInfo.idl */, 7201 7216 14D8238A0AF92DF60004F057 /* Chrome.cpp */, 7202 7217 14D823500AF92A790004F057 /* Chrome.h */, 7218 14D824060AF93AEB0004F057 /* ChromeClient.h */, 7203 7219 065AD4F20B0C2EDA005A2B1D /* ContextMenuClient.h */, 7204 7220 065AD4F30B0C2EDA005A2B1D /* ContextMenuController.cpp */, 7205 7221 065AD4F40B0C2EDA005A2B1D /* ContextMenuController.h */, 7206 14D824060AF93AEB0004F057 /* ChromeClient.h */,7207 7222 1403B99609EB13AF00797C7F /* DOMWindow.cpp */, 7208 7223 1403B99509EB13AF00797C7F /* DOMWindow.h */, 7209 7224 1403B90C09EB124500797C7F /* DOMWindow.idl */, 7225 A718760D0B2A120100A16ECE /* DragActions.h */, 7226 A7CA59620B27C1F200FA021D /* DragClient.h */, 7227 A7CA595C0B27BD9E00FA021D /* DragController.cpp */, 7228 A7CA595B0B27BD9E00FA021D /* DragController.h */, 7229 93C09A800B064F00005ABD4D /* EventHandler.cpp */, 7210 7230 93C09A520B064DB3005ABD4D /* EventHandler.h */, 7211 93C09A800B064F00005ABD4D /* EventHandler.cpp */,7231 14993BE30B2F2B1C0050497F /* FocusController.cpp */, 7212 7232 14993BE40B2F2B1C0050497F /* FocusController.h */, 7213 14993BE30B2F2B1C0050497F /* FocusController.cpp */,7214 7233 062287830B4DB322000C34DF /* FocusDirection.h */, 7215 7234 65BF02290974816300C43196 /* Frame.cpp */, … … 7226 7245 65A21467097A329100B9050A /* Page.h */, 7227 7246 65D1C1C909932B22000CB324 /* Plugin.h */, 7247 14C9A5E90B3D105F005A0232 /* Settings.cpp */, 7228 7248 F587863A02DE3A1401EA4122 /* Settings.h */, 7229 A7CA595B0B27BD9E00FA021D /* DragController.h */,7230 A7CA595C0B27BD9E00FA021D /* DragController.cpp */,7231 A7CA59620B27C1F200FA021D /* DragClient.h */,7232 A718760D0B2A120100A16ECE /* DragActions.h */,7233 14C9A5E90B3D105F005A0232 /* Settings.cpp */,7234 7249 ); 7235 7250 path = page; … … 11560 11575 BCFE2F120C1B58380020235F /* JSRect.h in Headers */, 11561 11576 BC4368E80C226E32005EFB5F /* Rect.h in Headers */, 11577 BC124EE80C2641CD009E2349 /* BarInfo.h in Headers */, 11578 BC124F000C26447A009E2349 /* JSBarInfo.h in Headers */, 11562 11579 ); 11563 11580 runOnlyForDeploymentPostprocessing = 0; … … 11673 11690 1AB1AE7A0C051FDE00139F4F /* zoomInCursor.png in Resources */, 11674 11691 1AB1AE7B0C051FDE00139F4F /* zoomOutCursor.png in Resources */, 11692 BC124EE90C2641CD009E2349 /* BarInfo.idl in Resources */, 11675 11693 ); 11676 11694 runOnlyForDeploymentPostprocessing = 0; … … 12984 13002 BCCBAD400C18C14200CE890F /* JSHTMLCollection.cpp in Sources */, 12985 13003 BCFE2F110C1B58370020235F /* JSRect.cpp in Sources */, 13004 BC124EE70C2641CD009E2349 /* BarInfo.cpp in Sources */, 13005 BC124EFF0C26447A009E2349 /* JSBarInfo.cpp in Sources */, 12986 13006 ); 12987 13007 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/bindings/js/kjs_window.cpp
r23567 r23573 87 87 , loc(0) 88 88 , m_selection(0) 89 , m_locationbar(0)90 , m_menubar(0)91 , m_personalbar(0)92 , m_scrollbars(0)93 , m_statusbar(0)94 , m_toolbar(0)95 89 , m_evt(0) 96 90 , m_returnValueSlot(0) … … 106 100 mutable Location* loc; 107 101 mutable Selection* m_selection; 108 mutable BarInfo* m_locationbar;109 mutable BarInfo* m_menubar;110 mutable BarInfo* m_personalbar;111 mutable BarInfo* m_scrollbars;112 mutable BarInfo* m_statusbar;113 mutable BarInfo* m_toolbar;114 102 WebCore::Event *m_evt; 115 103 JSValue **m_returnValueSlot; … … 256 244 length Window::Length DontDelete|ReadOnly 257 245 location Window::Location_ DontDelete 258 locationbar Window::Locationbar DontDelete259 246 name Window::Name DontDelete 260 247 navigator Window::Navigator_ DontDelete|ReadOnly 261 248 clientInformation Window::ClientInformation DontDelete|ReadOnly 262 menubar Window::Menubar DontDelete|ReadOnly263 249 offscreenBuffering Window::OffscreenBuffering DontDelete|ReadOnly 264 250 opener Window::Opener DontDelete|ReadOnly … … 268 254 pageYOffset Window::PageYOffset DontDelete|ReadOnly 269 255 parent Window::Parent DontDelete|ReadOnly 270 personalbar Window::Personalbar DontDelete|ReadOnly271 256 screenX Window::ScreenX DontDelete|ReadOnly 272 257 screenY Window::ScreenY DontDelete|ReadOnly 273 258 screenLeft Window::ScreenLeft DontDelete|ReadOnly 274 259 screenTop Window::ScreenTop DontDelete|ReadOnly 275 scrollbars Window::Scrollbars DontDelete|ReadOnly276 statusbar Window::Statusbar DontDelete|ReadOnly277 toolbar Window::Toolbar DontDelete|ReadOnly278 260 scroll Window::Scroll DontDelete|Function 2 279 261 scrollBy Window::ScrollBy DontDelete|Function 2 … … 429 411 } 430 412 431 BarInfo *Window::locationbar(ExecState *exec) const432 {433 if (!d->m_locationbar)434 d->m_locationbar = new BarInfo(exec, m_frame, BarInfo::Locationbar);435 return d->m_locationbar;436 }437 438 BarInfo *Window::menubar(ExecState *exec) const439 {440 if (!d->m_menubar)441 d->m_menubar = new BarInfo(exec, m_frame, BarInfo::Menubar);442 return d->m_menubar;443 }444 445 BarInfo *Window::personalbar(ExecState *exec) const446 {447 if (!d->m_personalbar)448 d->m_personalbar = new BarInfo(exec, m_frame, BarInfo::Personalbar);449 return d->m_personalbar;450 }451 452 BarInfo *Window::statusbar(ExecState *exec) const453 {454 if (!d->m_statusbar)455 d->m_statusbar = new BarInfo(exec, m_frame, BarInfo::Statusbar);456 return d->m_statusbar;457 }458 459 BarInfo *Window::toolbar(ExecState *exec) const460 {461 if (!d->m_toolbar)462 d->m_toolbar = new BarInfo(exec, m_frame, BarInfo::Toolbar);463 return d->m_toolbar;464 }465 466 BarInfo *Window::scrollbars(ExecState *exec) const467 {468 if (!d->m_scrollbars)469 d->m_scrollbars = new BarInfo(exec, m_frame, BarInfo::Scrollbars);470 return d->m_scrollbars;471 }472 473 413 // reference our special objects during garbage collection 474 414 void Window::mark() … … 483 423 if (d->m_selection && !d->m_selection->marked()) 484 424 d->m_selection->mark(); 485 if (d->m_locationbar && !d->m_locationbar->marked())486 d->m_locationbar->mark();487 if (d->m_menubar && !d->m_menubar->marked())488 d->m_menubar->mark();489 if (d->m_personalbar && !d->m_personalbar->marked())490 d->m_personalbar->mark();491 if (d->m_scrollbars && !d->m_scrollbars->marked())492 d->m_scrollbars->mark();493 if (d->m_statusbar && !d->m_statusbar->marked())494 d->m_statusbar->mark();495 if (d->m_toolbar && !d->m_toolbar->marked())496 d->m_toolbar->mark();497 425 } 498 426 … … 752 680 return n; 753 681 } 754 case Locationbar:755 return locationbar(exec);756 case Menubar:757 return menubar(exec);758 682 case OffscreenBuffering: 759 683 return jsBoolean(true); … … 778 702 case Parent: 779 703 return retrieve(m_frame->tree()->parent() ? m_frame->tree()->parent() : m_frame); 780 case Personalbar:781 return personalbar(exec);782 704 case ScreenLeft: 783 705 case ScreenX: … … 796 718 updateLayout(); 797 719 return jsNumber(m_frame->view()->contentsY()); 798 case Scrollbars:799 return scrollbars(exec);800 case Statusbar:801 return statusbar(exec);802 case Toolbar:803 return toolbar(exec);804 720 case Self: 805 721 case Window_: … … 1375 1291 d->loc = 0; 1376 1292 d->m_selection = 0; 1377 d->m_locationbar = 0;1378 d->m_menubar = 0;1379 d->m_personalbar = 0;1380 d->m_scrollbars = 0;1381 d->m_statusbar = 0;1382 d->m_toolbar = 0;1383 1293 d->m_evt = 0; 1384 1294 } … … 2015 1925 if (d->m_selection) 2016 1926 d->m_selection->m_frame = 0; 2017 if (d->m_locationbar)2018 d->m_locationbar->m_frame = 0;2019 if (d->m_menubar)2020 d->m_menubar->m_frame = 0;2021 if (d->m_personalbar)2022 d->m_personalbar->m_frame = 0;2023 if (d->m_statusbar)2024 d->m_statusbar->m_frame = 0;2025 if (d->m_toolbar)2026 d->m_toolbar->m_frame = 0;2027 if (d->m_scrollbars)2028 d->m_scrollbars->m_frame = 0;2029 1927 if (d->history) 2030 1928 d->history->disconnectFrame(); … … 2386 2284 } 2387 2285 2388 ////////////////////// BarInfo Object ////////////////////////2389 2390 const ClassInfo BarInfo::info = { "BarInfo", 0, &BarInfoTable, 0 };2391 /*2392 @begin BarInfoTable 12393 visible BarInfo::Visible DontDelete|ReadOnly2394 @end2395 */2396 BarInfo::BarInfo(ExecState *exec, Frame *f, Type barType)2397 : m_frame(f)2398 , m_type(barType)2399 {2400 setPrototype(exec->lexicalInterpreter()->builtinObjectPrototype());2401 }2402 2403 JSValue *BarInfo::getValueProperty(ExecState *exec, int token) const2404 {2405 ASSERT(token == Visible);2406 switch (m_type) {2407 case Locationbar:2408 return jsBoolean(m_frame->page()->chrome()->toolbarsVisible());2409 case Toolbar:2410 return jsBoolean(m_frame->page()->chrome()->toolbarsVisible());2411 case Personalbar:2412 return jsBoolean(m_frame->page()->chrome()->toolbarsVisible());2413 case Menubar:2414 return jsBoolean(m_frame->page()->chrome()->menubarVisible());2415 case Scrollbars:2416 return jsBoolean(m_frame->page()->chrome()->scrollbarsVisible());2417 case Statusbar:2418 return jsBoolean(m_frame->page()->chrome()->statusbarVisible());2419 default:2420 return jsBoolean(false);2421 }2422 }2423 2424 bool BarInfo::getOwnPropertySlot(ExecState *exec, const Identifier& propertyName, PropertySlot& slot)2425 {2426 if (!m_frame)2427 return false;2428 2429 return getStaticValueSlot<BarInfo, JSObject>(exec, &BarInfoTable, this, propertyName, slot);2430 }2431 2432 2286 ////////////////////// History Object //////////////////////// 2433 2287 -
trunk/WebCore/bindings/js/kjs_window.h
r23567 r23573 133 133 Selection *selection() const; 134 134 bool find(const WebCore::String&, bool, bool, bool, bool, bool, bool) const; 135 BarInfo *locationbar(ExecState*) const;136 BarInfo *menubar(ExecState*) const;137 BarInfo *personalbar(ExecState*) const;138 BarInfo *scrollbars(ExecState*) const;139 BarInfo *statusbar(ExecState*) const;140 BarInfo *toolbar(ExecState*) const;141 135 142 136 // Finds a wrapper of a JS EventListener, returns 0 if no existing one. … … 171 165 static const ClassInfo info; 172 166 enum { AToB, BToA, Closed, Crypto, DefaultStatus, Status, DOMException, Frames, History_, Event_, InnerHeight, 173 InnerWidth, Length, Location_, Locationbar,Name, Navigator_, ClientInformation,174 Menubar,OffscreenBuffering, Opener, OuterHeight, OuterWidth, PageXOffset, PageYOffset,175 Parent, Personalbar, ScreenX, ScreenY, Scrollbars, Scroll, ScrollBy,167 InnerWidth, Length, Location_, Name, Navigator_, ClientInformation, 168 OffscreenBuffering, Opener, OuterHeight, OuterWidth, PageXOffset, PageYOffset, 169 Parent, ScreenX, ScreenY, Scroll, ScrollBy, 176 170 ScreenTop, ScreenLeft, 177 171 ScrollTo, ScrollX, ScrollY, MoveBy, MoveTo, ResizeBy, ResizeTo, Self, Window_, Top, Screen_, … … 184 178 Onmouseout, Onmouseover, Onmouseup, OnWindowMouseWheel, Onreset, Onresize, Onscroll, Onsearch, 185 179 Onselect, Onsubmit, Onunload, Onbeforeunload, 186 Statusbar, Toolbar,FrameElement, ShowModalDialog, Find, Stop };180 FrameElement, ShowModalDialog, Find, Stop }; 187 181 188 182 private: … … 256 250 }; 257 251 258 class BarInfo : public DOMObject {259 public:260 virtual bool getOwnPropertySlot(ExecState *, const Identifier&, PropertySlot&);261 JSValue *getValueProperty(ExecState *exec, int token) const;262 enum { Visible };263 enum Type { Locationbar, Menubar, Personalbar, Scrollbars, Statusbar, Toolbar };264 WebCore::Frame* frame() const { return m_frame; }265 virtual const ClassInfo* classInfo() const { return &info; }266 static const ClassInfo info;267 private:268 friend class Window;269 BarInfo(ExecState*, WebCore::Frame*, Type);270 WebCore::Frame* m_frame;271 Type m_type;272 };273 274 252 } // namespace 275 253 -
trunk/WebCore/page/DOMWindow.cpp
r21367 r23573 27 27 #include "DOMWindow.h" 28 28 29 #include "cssstyleselector.h" 30 #include "Chrome.h" 29 #include "BarInfo.h" 31 30 #include "CSSComputedStyleDeclaration.h" 32 31 #include "CSSRuleList.h" 32 #include "Chrome.h" 33 33 #include "Document.h" 34 34 #include "Element.h" … … 37 37 #include "Page.h" 38 38 #include "Screen.h" 39 #include "cssstyleselector.h" 39 40 40 41 namespace WebCore { … … 42 43 DOMWindow::DOMWindow(Frame* f) 43 44 : m_frame(f) 45 { 46 } 47 48 DOMWindow::~DOMWindow() 44 49 { 45 50 } … … 53 58 { 54 59 m_frame = 0; 60 if (m_locationbar) 61 m_locationbar->disconnectFrame(); 62 if (m_menubar) 63 m_menubar->disconnectFrame(); 64 if (m_personalbar) 65 m_personalbar->disconnectFrame(); 66 if (m_scrollbars) 67 m_scrollbars->disconnectFrame(); 68 if (m_statusbar) 69 m_statusbar->disconnectFrame(); 70 if (m_toolbar) 71 m_toolbar->disconnectFrame(); 72 } 73 74 BarInfo* DOMWindow::locationbar() const 75 { 76 if (!m_locationbar) 77 m_locationbar = new BarInfo(m_frame, BarInfo::Locationbar); 78 return m_locationbar.get(); 79 } 80 81 BarInfo* DOMWindow::menubar() const 82 { 83 if (!m_menubar) 84 m_menubar = new BarInfo(m_frame, BarInfo::Menubar); 85 return m_menubar.get(); 86 } 87 88 BarInfo* DOMWindow::personalbar() const 89 { 90 if (!m_personalbar) 91 m_personalbar = new BarInfo(m_frame, BarInfo::Personalbar); 92 return m_personalbar.get(); 93 } 94 95 BarInfo* DOMWindow::scrollbars() const 96 { 97 if (!m_scrollbars) 98 m_scrollbars = new BarInfo(m_frame, BarInfo::Scrollbars); 99 return m_scrollbars.get(); 100 } 101 102 BarInfo* DOMWindow::statusbar() const 103 { 104 if (!m_statusbar) 105 m_statusbar = new BarInfo(m_frame, BarInfo::Statusbar); 106 return m_statusbar.get(); 107 } 108 109 BarInfo* DOMWindow::toolbar() const 110 { 111 if (!m_toolbar) 112 m_toolbar = new BarInfo(m_frame, BarInfo::Toolbar); 113 return m_toolbar.get(); 55 114 } 56 115 -
trunk/WebCore/page/DOMWindow.h
r16954 r23573 28 28 29 29 #include "Shared.h" 30 #include <wtf/PassRefPtr.h> 30 #include <wtf/Forward.h> 31 #include <wtf/RefPtr.h> 31 32 32 33 namespace WebCore { 34 35 class BarInfo; 33 36 class CSSRuleList; 34 37 class CSSStyleDeclaration; … … 41 44 public: 42 45 DOMWindow(Frame*); 46 virtual ~DOMWindow(); 47 43 48 Frame* frame(); 44 49 void disconnectFrame(); 50 51 // DOM Level 0 52 BarInfo* locationbar() const; 53 BarInfo* menubar() const; 54 BarInfo* personalbar() const; 55 BarInfo* scrollbars() const; 56 BarInfo* statusbar() const; 57 BarInfo* toolbar() const; 58 45 59 46 60 // DOM Level 2 AbstractView Interface … … 56 70 private: 57 71 Frame* m_frame; 72 mutable RefPtr<BarInfo> m_locationbar; 73 mutable RefPtr<BarInfo> m_menubar; 74 mutable RefPtr<BarInfo> m_personalbar; 75 mutable RefPtr<BarInfo> m_scrollbars; 76 mutable RefPtr<BarInfo> m_statusbar; 77 mutable RefPtr<BarInfo> m_toolbar; 58 78 }; 59 79 -
trunk/WebCore/page/DOMWindow.idl
r23557 r23573 29 29 // For the same reason, there's no need to. 30 30 interface [LegacyParent=KJS::Window, DoNotCache, GenerateNativeConverter, CustomGetOwnPropertySlot] DOMWindow { 31 // DOM Level 0 32 readonly attribute BarInfo locationbar; 33 readonly attribute BarInfo menubar; 34 readonly attribute BarInfo personalbar; 35 readonly attribute BarInfo scrollbars; 36 readonly attribute BarInfo statusbar; 37 readonly attribute BarInfo toolbar; 38 31 39 // DOM Level 2 AbstractView Interface 32 40 readonly attribute Document document;
Note: See TracChangeset
for help on using the changeset viewer.