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 10namespace 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. 15class WebLocalFrame : public WebFrame { 16public: 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