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.
5 #ifndef WebLocalFrame_h
6 #define WebLocalFrame_h
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 {
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*);
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();
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>);
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&);
36 // Navigation Ping --------------------------------------------------------
37 virtual void sendPings(const WebNode& linkNode, const WebURL& destinationURL) = 0;
40 // Navigation State -------------------------------------------------------
42 // Returns true if the current frame's load event has not completed.
43 virtual bool isLoading() const = 0;
45 // Returns true if any resource load is currently in progress. Exposed
46 // primarily for use in layout tests. You probably want isLoading()
48 virtual bool isResourceLoadInProgress() const = 0;
51 // Navigation Transitions -------------------------------------------------
52 virtual void addStyleSheetByURL(const WebString& url) = 0;
53 virtual void navigateToSandboxedMarkup(const WebData& markup) = 0;
56 // Orientation Changes ----------------------------------------------------
58 // Notify the frame that the screen orientation has changed.
59 virtual void sendOrientationChangeEvent() = 0;
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;
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;
74 #endif // WebLocalFrame_h