• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef WebLocalFrame_h
6 #define WebLocalFrame_h
7 
8 #include "WebFrame.h"
9 
10 namespace blink {
11 
12 // Interface for interacting with in process frames. This contains methods that
13 // require interacting with a frame's document.
14 // FIXME: Move lots of methods from WebFrame in here.
15 class WebLocalFrame : public WebFrame {
16 public:
17     // Creates a WebFrame. Delete this WebFrame by calling WebFrame::close().
18     // It is valid to pass a null client pointer.
19     BLINK_EXPORT static WebLocalFrame* create(WebFrameClient*);
20 
21     // Returns the WebFrame associated with the current V8 context. This
22     // function can return 0 if the context is associated with a Document that
23     // is not currently being displayed in a Frame.
24     BLINK_EXPORT static WebLocalFrame* frameForCurrentContext();
25 
26     // Returns the frame corresponding to the given context. This can return 0
27     // if the context is detached from the frame, or if the context doesn't
28     // correspond to a frame (e.g., workers).
29     BLINK_EXPORT static WebLocalFrame* frameForContext(v8::Handle<v8::Context>);
30 
31     // Returns the frame inside a given frame or iframe element. Returns 0 if
32     // the given element is not a frame, iframe or if the frame is empty.
33     BLINK_EXPORT static WebLocalFrame* fromFrameOwnerElement(const WebElement&);
34 
35     // Navigation Transitions  ---------------------------------------------
36     virtual void addStyleSheetByURL(const WebString& url) = 0;
37 };
38 
39 } // namespace blink
40 
41 #endif // WebLocalFrame_h
42