Home | History | Annotate | Download | only in web
      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