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 
     36     // Navigation Ping --------------------------------------------------------
     37     virtual void sendPings(const WebNode& linkNode, const WebURL& destinationURL) = 0;
     38 
     39 
     40     // Navigation State -------------------------------------------------------
     41 
     42     // Returns true if the current frame's load event has not completed.
     43     virtual bool isLoading() const = 0;
     44 
     45     // Returns true if any resource load is currently in progress. Exposed
     46     // primarily for use in layout tests. You probably want isLoading()
     47     // instead.
     48     virtual bool isResourceLoadInProgress() const = 0;
     49 
     50 
     51     // Navigation Transitions -------------------------------------------------
     52     virtual void addStyleSheetByURL(const WebString& url) = 0;
     53     virtual void navigateToSandboxedMarkup(const WebData& markup) = 0;
     54 
     55 
     56     // Orientation Changes ----------------------------------------------------
     57 
     58     // Notify the frame that the screen orientation has changed.
     59     virtual void sendOrientationChangeEvent() = 0;
     60 
     61 
     62     // Scripting --------------------------------------------------------------
     63     // ONLY FOR TESTS: Forwards to executeScriptAndReturnValue, but sets a fake
     64     // UserGestureIndicator before execution.
     65     virtual v8::Handle<v8::Value> executeScriptAndReturnValueForTests(const WebScriptSource&) = 0;
     66 
     67     // Associates an isolated world with human-readable name which is useful for
     68     // extension debugging.
     69     virtual void setIsolatedWorldHumanReadableName(int worldID, const WebString&) = 0;
     70 };
     71 
     72 } // namespace blink
     73 
     74 #endif // WebLocalFrame_h
     75