// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef WebLocalFrame_h #define WebLocalFrame_h #include "WebFrame.h" namespace blink { // Interface for interacting with in process frames. This contains methods that // require interacting with a frame's document. // FIXME: Move lots of methods from WebFrame in here. class WebLocalFrame : public WebFrame { public: // Creates a WebFrame. Delete this WebFrame by calling WebFrame::close(). // It is valid to pass a null client pointer. BLINK_EXPORT static WebLocalFrame* create(WebFrameClient*); // Returns the WebFrame associated with the current V8 context. This // function can return 0 if the context is associated with a Document that // is not currently being displayed in a Frame. BLINK_EXPORT static WebLocalFrame* frameForCurrentContext(); // Returns the frame corresponding to the given context. This can return 0 // if the context is detached from the frame, or if the context doesn't // correspond to a frame (e.g., workers). BLINK_EXPORT static WebLocalFrame* frameForContext(v8::Handle); // Returns the frame inside a given frame or iframe element. Returns 0 if // the given element is not a frame, iframe or if the frame is empty. BLINK_EXPORT static WebLocalFrame* fromFrameOwnerElement(const WebElement&); // Navigation Transitions --------------------------------------------- virtual void addStyleSheetByURL(const WebString& url) = 0; }; } // namespace blink #endif // WebLocalFrame_h