Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Side by Side Diff: Source/web/WebFrameImpl.h

Issue 23506013: Make the embedder responsible for creating the WebFrame (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix lifetime on frame detach Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | Source/web/WebFrameImpl.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 69
70 template <typename T> class WebVector; 70 template <typename T> class WebVector;
71 71
72 // Implementation of WebFrame, note that this is a reference counted object. 72 // Implementation of WebFrame, note that this is a reference counted object.
73 class WebFrameImpl 73 class WebFrameImpl
74 : public WebFrame 74 : public WebFrame
75 , public RefCounted<WebFrameImpl> 75 , public RefCounted<WebFrameImpl>
76 , public WebCore::FrameDestructionObserver { 76 , public WebCore::FrameDestructionObserver {
77 public: 77 public:
78 // WebFrame methods: 78 // WebFrame methods:
79 virtual void close();
79 virtual WebString uniqueName() const; 80 virtual WebString uniqueName() const;
80 virtual WebString assignedName() const; 81 virtual WebString assignedName() const;
81 virtual void setName(const WebString&); 82 virtual void setName(const WebString&);
82 virtual long long identifier() const; 83 virtual long long embedderIdentifier() const;
83 virtual WebVector<WebIconURL> iconURLs(int iconTypesMask) const; 84 virtual WebVector<WebIconURL> iconURLs(int iconTypesMask) const;
84 virtual WebSize scrollOffset() const; 85 virtual WebSize scrollOffset() const;
85 virtual void setScrollOffset(const WebSize&); 86 virtual void setScrollOffset(const WebSize&);
86 virtual WebSize minimumScrollOffset() const; 87 virtual WebSize minimumScrollOffset() const;
87 virtual WebSize maximumScrollOffset() const; 88 virtual WebSize maximumScrollOffset() const;
88 virtual WebSize contentsSize() const; 89 virtual WebSize contentsSize() const;
89 virtual bool hasVisibleContent() const; 90 virtual bool hasVisibleContent() const;
90 virtual WebRect visibleContentRect() const; 91 virtual WebRect visibleContentRect() const;
91 virtual bool hasHorizontalScrollbar() const; 92 virtual bool hasHorizontalScrollbar() const;
92 virtual bool hasVerticalScrollbar() const; 93 virtual bool hasVerticalScrollbar() const;
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 virtual WebString renderTreeAsText(RenderAsTextControls toShow = RenderAsTex tNormal) const; 231 virtual WebString renderTreeAsText(RenderAsTextControls toShow = RenderAsTex tNormal) const;
231 virtual WebString markerTextForListItem(const WebElement&) const; 232 virtual WebString markerTextForListItem(const WebElement&) const;
232 virtual WebRect selectionBoundsRect() const; 233 virtual WebRect selectionBoundsRect() const;
233 234
234 virtual bool selectionStartHasSpellingMarkerFor(int from, int length) const; 235 virtual bool selectionStartHasSpellingMarkerFor(int from, int length) const;
235 virtual WebString layerTreeAsText(bool showDebugInfo = false) const; 236 virtual WebString layerTreeAsText(bool showDebugInfo = false) const;
236 237
237 // WebCore::FrameDestructionObserver methods. 238 // WebCore::FrameDestructionObserver methods.
238 virtual void willDetachPage(); 239 virtual void willDetachPage();
239 240
240 static PassRefPtr<WebFrameImpl> create(WebFrameClient* client); 241 static WebFrameImpl* create(WebFrameClient*);
242 // FIXME: Move the embedderIdentifier concept fully to the embedder and
243 // remove this factory method.
244 static WebFrameImpl* create(WebFrameClient*, long long embedderIdentifier);
241 virtual ~WebFrameImpl(); 245 virtual ~WebFrameImpl();
242 246
243 // Called by the WebViewImpl to initialize the main frame for the page. 247 // Called by the WebViewImpl to initialize the main frame for the page.
244 void initializeAsMainFrame(WebCore::Page*); 248 void initializeAsMainFrame(WebCore::Page*);
245 249
246 PassRefPtr<WebCore::Frame> createChildFrame( 250 PassRefPtr<WebCore::Frame> createChildFrame(
247 const WebCore::FrameLoadRequest&, WebCore::HTMLFrameOwnerElement*); 251 const WebCore::FrameLoadRequest&, WebCore::HTMLFrameOwnerElement*);
248 252
249 void didChangeContentsSize(const WebCore::IntSize&); 253 void didChangeContentsSize(const WebCore::IntSize&);
250 254
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 }; 323 };
320 324
321 // A bit mask specifying area of the frame to invalidate. 325 // A bit mask specifying area of the frame to invalidate.
322 enum AreaToInvalidate { 326 enum AreaToInvalidate {
323 InvalidateNothing, 327 InvalidateNothing,
324 InvalidateContentArea, 328 InvalidateContentArea,
325 InvalidateScrollbar, // Vertical scrollbar only. 329 InvalidateScrollbar, // Vertical scrollbar only.
326 InvalidateAll // Both content area and the scrollbar. 330 InvalidateAll // Both content area and the scrollbar.
327 }; 331 };
328 332
329 explicit WebFrameImpl(WebFrameClient*); 333 WebFrameImpl(WebFrameClient*, long long frame_identifier);
330 334
331 // Sets the local WebCore frame and registers destruction observers. 335 // Sets the local WebCore frame and registers destruction observers.
332 void setWebCoreFrame(WebCore::Frame*); 336 void setWebCoreFrame(WebCore::Frame*);
333 337
334 // Notifies the delegate about a new selection rect. 338 // Notifies the delegate about a new selection rect.
335 void reportFindInPageSelection( 339 void reportFindInPageSelection(
336 const WebRect& selectionRect, int activeMatchOrdinal, int identifier); 340 const WebRect& selectionRect, int activeMatchOrdinal, int identifier);
337 341
338 // Clear the find-in-page matches cache forcing rects to be fully 342 // Clear the find-in-page matches cache forcing rects to be fully
339 // calculated again next time updateFindMatchRects is called. 343 // calculated again next time updateFindMatchRects is called.
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 487
484 // Contents size when find-in-page match rects were last computed for this 488 // Contents size when find-in-page match rects were last computed for this
485 // frame's cache. 489 // frame's cache.
486 WebCore::IntSize m_contentsSizeForCurrentFindMatchRects; 490 WebCore::IntSize m_contentsSizeForCurrentFindMatchRects;
487 491
488 // Valid between calls to BeginPrint() and EndPrint(). Containts the print 492 // Valid between calls to BeginPrint() and EndPrint(). Containts the print
489 // information. Is used by PrintPage(). 493 // information. Is used by PrintPage().
490 OwnPtr<ChromePrintContext> m_printContext; 494 OwnPtr<ChromePrintContext> m_printContext;
491 495
492 // The identifier of this frame. 496 // The identifier of this frame.
493 long long m_identifier; 497 long long m_embedderIdentifier;
494 498
495 // Ensure we don't overwrite valid history data during same document loads 499 // Ensure we don't overwrite valid history data during same document loads
496 // from HistoryItems 500 // from HistoryItems
497 bool m_inSameDocumentHistoryLoad; 501 bool m_inSameDocumentHistoryLoad;
498 }; 502 };
499 503
500 inline WebFrameImpl* toWebFrameImpl(WebFrame* webFrame) 504 inline WebFrameImpl* toWebFrameImpl(WebFrame* webFrame)
501 { 505 {
502 return static_cast<WebFrameImpl*>(webFrame); 506 return static_cast<WebFrameImpl*>(webFrame);
503 } 507 }
504 508
505 inline const WebFrameImpl* toWebFrameImpl(const WebFrame* webFrame) 509 inline const WebFrameImpl* toWebFrameImpl(const WebFrame* webFrame)
506 { 510 {
507 return static_cast<const WebFrameImpl*>(webFrame); 511 return static_cast<const WebFrameImpl*>(webFrame);
508 } 512 }
509 513
510 // This will catch anyone doing an unnecessary cast. 514 // This will catch anyone doing an unnecessary cast.
511 void toWebFrameImpl(const WebFrameImpl*); 515 void toWebFrameImpl(const WebFrameImpl*);
512 516
513 } // namespace WebKit 517 } // namespace WebKit
514 518
515 #endif 519 #endif
OLDNEW
« no previous file with comments | « no previous file | Source/web/WebFrameImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698