diff options
Diffstat (limited to 'webkit/glue/webframe.h')
-rw-r--r-- | webkit/glue/webframe.h | 423 |
1 files changed, 0 insertions, 423 deletions
diff --git a/webkit/glue/webframe.h b/webkit/glue/webframe.h deleted file mode 100644 index ca3d063..0000000 --- a/webkit/glue/webframe.h +++ /dev/null @@ -1,423 +0,0 @@ -// Copyright (c) 2006-2009 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 WEBKIT_GLUE_WEBFRAME_H_ -#define WEBKIT_GLUE_WEBFRAME_H_ - -#include <vector> - -#include "base/scoped_ptr.h" -#include "base/string16.h" -#include "skia/ext/bitmap_platform_device.h" -#include "skia/ext/platform_canvas.h" -#include "webkit/api/public/WebCanvas.h" -#include "webkit/api/public/WebURL.h" - -class GURL; -class WebView; -class WebTextInput; -struct NPObject; - -namespace WebKit { -class WebData; -class WebDataSource; -class WebForm; -class WebHistoryItem; -class WebString; -class WebURLRequest; -struct WebConsoleMessage; -struct WebFindOptions; -struct WebRect; -struct WebScriptSource; -struct WebSize; -struct WebURLError; -} - -#if WEBKIT_USING_V8 -namespace v8 { - template <class T> class Local; - class Context; -} -#endif - -// Every frame in a web page is represented by one WebFrame, including the -// outermost frame. -class WebFrame { - public: - WebFrame() {} - - // The two functions below retrieve WebFrame instances relating the currently - // executing JavaScript. Since JavaScript can make function calls across - // frames, though, we need to be more precise. - // - // For example, imagine that a JS function in frame A calls a function in - // frame B, which calls native code, which wants to know what the 'active' - // frame is. - // - // The 'entered context' is the context where execution first entered the - // script engine; the context that is at the bottom of the JS function stack. - // RetrieveFrameForEnteredContext() would return Frame A in our example. - // - // The 'current context' is the context the JS engine is currently inside of; - // the context that is at the top of the JS function stack. - // RetrieveFrameForCurrentContext() would return Frame B in our example. - static WebFrame* RetrieveFrameForEnteredContext(); - static WebFrame* RetrieveFrameForCurrentContext(); - - // Binds a C++ class to a JavaScript property of the window object. This - // should generally be used via CppBoundClass::BindToJavascript() instead of - // calling it directly. - virtual void BindToWindowObject(const std::wstring& name, - NPObject* object) = 0; - - virtual void CallJSGC() = 0; - - // This grants the currently loaded Document access to all security origins - // (including file URLs). Use with care. The access is revoked when a new - // document is loaded into this frame. - virtual void GrantUniversalAccess() = 0; - - virtual NPObject* GetWindowNPObject() = 0; - -#if WEBKIT_USING_V8 - // Returns the V8 context for this frame, or an empty handle if there is - // none. - virtual v8::Local<v8::Context> GetMainWorldScriptContext() = 0; -#endif - - // Reload the current document. - virtual void Reload() = 0; - - // Loads the given WebURLRequest. - virtual void LoadRequest(const WebKit::WebURLRequest& request) = 0; - - // Loads the given WebHistoryItem. This corresponds to a back/forward - // navigation. - virtual void LoadHistoryItem(const WebKit::WebHistoryItem& item) = 0; - - // Loads the given data with specific mime type and optional text encoding. - // For HTML data, base_url indicates the security origin of the document and - // is used to resolve links. If specified, unreachable_url is reported via - // WebDataSource::unreachableURL. If replace is false, then this data will - // be loaded as a normal navigation. Otherwise, the current history item - // will be replaced. - virtual void LoadData( - const WebKit::WebData& data, - const WebKit::WebString& mime_type, - const WebKit::WebString& text_encoding, - const WebKit::WebURL& base_url, - const WebKit::WebURL& unreachable_url = WebKit::WebURL(), - bool replace = false) = 0; - - // This method is short-hand for calling LoadData, where mime_type is - // "text/html" and text_encoding is "UTF-8". - virtual void LoadHTMLString( - const WebKit::WebData& html, - const WebKit::WebURL& base_url, - const WebKit::WebURL& unreachable_url = WebKit::WebURL(), - bool replace = false) = 0; - - // Called to associate the WebURLRequest with this frame. The request will - // be modified to inherit parameters that allow it to be loaded. This method - // ends up triggering WebViewDelegate::WillSendRequest. - virtual void DispatchWillSendRequest(WebKit::WebURLRequest* request) = 0; - - // Called from within WebViewDelegate::DidReceiveDocumentData to commit data - // for the frame that will be used to construct the frame's document. - virtual void CommitDocumentData(const char* data, size_t data_len) = 0; - - // Executes JavaScript in the web frame. - virtual void ExecuteScript(const WebKit::WebScriptSource& source) = 0; - - // Executes JavaScript in a new context associated with the web frame. The - // script gets its own global scope and its own prototypes for intrinsic - // JavaScript objects (String, Array, and so-on). It shares the wrappers for - // all DOM nodes and DOM constructors. extension_group is an - // embedder-provided specifier that controls which v8 extensions are loaded - // into the new context - see WebKit::registerExtension for the corresponding - // specifier. - virtual void ExecuteScriptInNewContext( - const WebKit::WebScriptSource* sources, int num_sources, - int extension_group) = 0; - - // Executes JavaScript in a new world associated with the web frame. The - // script gets its own global scope and its own prototypes for intrinsic - // JavaScript objects (String, Array, and so-on). It also gets its own - // wrappers for all DOM nodes and DOM constructors. extension_group is an - // embedder-provided specifier that controls which v8 extensions are loaded - // into the new context - see WebKit::registerExtension for the corresponding - // specifier. - virtual void ExecuteScriptInNewWorld( - const WebKit::WebScriptSource* sources, int num_sources, - int extension_group) = 0; - - // Inserts the given CSS styles at the beginning of the document. - virtual bool InsertCSSStyles(const std::string& css) = 0; - - // Returns the WebHistoryItem representing the state of the previous page - // load for later use when loading. The previous page is the page that was - // loaded before DidCommitLoadForFrame was received. - // - // Returns a null item if there is no valid state to return (for example, - // there is no previous item). Returns true if the previous item's state was - // retrieved, even if that state may be empty. - virtual WebKit::WebHistoryItem GetPreviousHistoryItem() const = 0; - - // Returns the WebHistoryItem representing the state of the current page load - // for later use when loading. - // - // Returns a null item if there is no valid state to return (for example, - // there is no previous item). Returns true if the current item's state was - // retrieved, even if that state may be empty. - virtual WebKit::WebHistoryItem GetCurrentHistoryItem() const = 0; - - // Returns the current URL of the frame, or an empty GURL if there is no - // URL to retrieve (for example, the frame may never have had any content). - virtual GURL GetURL() const = 0; - - // Returns the URL to the favorite icon for the frame. An empty GURL is - // returned if the frame has not finished loading, or the frame's URL - // protocol is not http or https. - virtual GURL GetFavIconURL() const = 0; - - // Returns the URL to the OpenSearch description document for the frame. If - // the page does not have a valid document, an empty GURL is returned. - virtual GURL GetOSDDURL() const = 0; - - // Return the minPrefWidth of the content contained in the current Document - virtual int GetContentsPreferredWidth() const = 0; - - // Returns the committed data source, which is the last data source that has - // successfully started loading. Will return NULL if no provisional data - // has been committed. - virtual WebKit::WebDataSource* GetDataSource() const = 0; - - // Returns the provisional data source, which is a data source where a - // request has been made, but we are not sure if we will use data from it - // (for example, it may be an invalid URL). When the provisional load is - // "committed," it will become the "real" data source (see GetDataSource - // above) and the provisional data source will be NULL. - virtual WebKit::WebDataSource* GetProvisionalDataSource() const = 0; - - // - // @method stopLoading - // @discussion Stop any pending loads on the frame's data source, - // and its children. - // - (void)stopLoading; - virtual void StopLoading() = 0; - - // Returns true if this frame is loading its main resource or a subresource. - virtual bool IsLoading() const = 0; - - // Returns the frame that opened this frame, or NULL if this window has no - // opener. - virtual WebFrame* GetOpener() const = 0; - - // Returns the frame containing this frame, or NULL of this is a top level - // frame with no parent. - virtual WebFrame* GetParent() const = 0; - - // Returns the top-most frame in the frame hierarchy containing this frame. - virtual WebFrame* GetTop() const = 0; - - // Returns the child frame with the given xpath. - // The document of this frame is used as the context node. - // The xpath may need a recursive traversal if non-trivial - // A non-trivial xpath will contain a combination of xpaths - // (delimited by '\n') leading to an inner subframe. - // - // Example: /html/body/iframe/\n/html/body/div/iframe/\n/frameset/frame[0] - // can be broken into 3 xpaths - // /html/body/iframe evaluates to an iframe within the root frame - // /html/body/div/iframe evaluates to an iframe within the level-1 iframe - // /frameset/frame[0] evaluates to first frame within the level-2 iframe - virtual WebFrame* GetChildFrame(const std::wstring& xpath) const = 0; - - // Returns a pointer to the WebView that contains this WebFrame. This - // pointer is not AddRef'd and is only valid for the lifetime of the WebFrame - // unless it is AddRef'd separately by the caller. - virtual WebView* GetView() const = 0; - - // Returns a vector of WebForms (corresponds to document.forms). - virtual void GetForms(std::vector<WebKit::WebForm>* forms) const = 0; - - // Returns the serialization of the frame's security origin. - virtual std::string GetSecurityOrigin() const = 0; - - // Fills the contents of this frame into the given string. If the text is - // longer than max_chars, it will be clipped to that length. Warning: this - // function may be slow depending on the number of characters retrieved and - // page complexity. For a typically sized page, expect it to take on the - // order of milliseconds. - // - // If there is room, subframe text will be recursively appended. Each frame - // will be separated by an empty line. - virtual void GetContentAsPlainText(int max_chars, - std::wstring* text) const = 0; - - // Searches a frame for a given string. - // - // If a match is found, this function will select it (scrolling down to make - // it visible if needed) and fill in the IntRect (selection_rect) with the - // location of where the match was found (in screen coordinates). - // - // If no match is found, this function clears all tickmarks and highlighting. - // - // Returns true if the search string was found, false otherwise. - virtual bool Find(int request_id, - const string16& search_text, - const WebKit::WebFindOptions& options, - bool wrap_within_frame, - WebKit::WebRect* selection_rect) = 0; - - // Notifies the frame that we are no longer interested in searching. This will - // abort any asynchronous scoping effort already under way (see the function - // ScopeStringMatches for details) and erase all tick-marks and highlighting - // from the previous search. If |clear_selection| is true, it will also make - // sure the end state for the Find operation does not leave a selection. - // This can occur when the user clears the search string but does not close - // the find box. - virtual void StopFinding(bool clear_selection) = 0; - - // Counts how many times a particular string occurs within the frame. It - // also retrieves the location of the string and updates a vector in the frame - // so that tick-marks and highlighting can be drawn. This function does its - // work asynchronously, by running for a certain time-slice and then - // scheduling itself (co-operative multitasking) to be invoked later - // (repeating the process until all matches have been found). This allows - // multiple frames to be searched at the same time and provides a way to - // cancel at any time (see CancelPendingScopingEffort). The parameter Request - // specifies what to look for and Reset signals whether this is a brand new - // request or a continuation of the last scoping effort. - virtual void ScopeStringMatches(int request_id, - const string16& search_text, - const WebKit::WebFindOptions& options, - bool reset) = 0; - - // Cancels any outstanding requests for scoping string matches on a frame. - virtual void CancelPendingScopingEffort() = 0; - - // This function is called on the mainframe during the scoping effort to keep - // a running tally of the accumulated total match-count for all frames. After - // updating the count it will notify the render-view about the new count. - virtual void IncreaseMatchCount(int count, int request_id) = 0; - - // Notifies the webview-delegate about a new selection rect. This will result - // in the browser getting notified. For more information see WebViewDelegate. - virtual void ReportFindInPageSelection(const WebKit::WebRect& selection_rect, - int active_match_ordinal, - int request_id) = 0; - - // This function is called on the mainframe to reset the total number of - // matches found during the scoping effort. - virtual void ResetMatchCount() = 0; - - // Returns true if the frame is visible (defined as width > 0 and height > 0). - virtual bool Visible() = 0; - - // Selects all the text in the frame. - virtual void SelectAll() = 0; - - // - // - (void)copy:(id)sender; - virtual void Copy() = 0; - - // - // - (void)cut:(id)sender; - virtual void Cut() = 0; - - // - // - (void)paste:(id)sender; - virtual void Paste() = 0; - - // Replace the selection text by a given text. - virtual void Replace(const std::wstring& text) = 0; - - // Toggle spell check on and off. - virtual void ToggleSpellCheck() = 0; - - // Return whether spell check is enabled or not in this frame. - virtual bool SpellCheckEnabled() = 0; - - // - // - (void)delete:(id)sender; - // Delete as in similar to Cut, not as in teardown - virtual void Delete() = 0; - - // Undo the last text editing command. - virtual void Undo() = 0; - - // Redo the last undone text editing command. - virtual void Redo() = 0; - - // Clear any text selection in the frame. - virtual void ClearSelection() = 0; - - // Checks if there is currently a selected area (indicates that GetSelection - // would return a non-empty string). - virtual bool HasSelection() = 0; - - // Returns the selected text if there is any. If |as_html| is true, returns - // the selection as HTML. The return value is encoded in utf-8. - virtual std::string GetSelection(bool as_html) = 0; - - // Returns the full HTML of the page. - virtual std::string GetFullPageHtml() = 0; - - // This function sets a flag within WebKit to instruct it to render the page - // as View-Source (showing the HTML source for the page). - virtual void SetInViewSourceMode(bool enable) = 0; - - // This function returns whether this frame is in "view-source" mode. - virtual bool GetInViewSourceMode() const = 0; - - // Returns the frame name. - virtual std::wstring GetName() = 0; - - // Returns a pointer to the WebTextInput object associated with the frame. - // The caller does not own the object returned. - virtual WebTextInput* GetTextInput() = 0; - - // Executes a webkit editor command. The supported commands are a - // superset of those accepted by javascript:document.execCommand(). - // This method is exposed in order to implement - // javascript:layoutTestController.execCommand() - virtual bool ExecuteEditCommandByName(const std::string& name, - const std::string& value) = 0; - - // Checks whether a webkit editor command is currently enabled. This - // method is exposed in order to implement - // javascript:layoutTestController.isCommandEnabled() - virtual bool IsEditCommandEnabled(const std::string& name) = 0; - - // Adds a message to the frame's console. - virtual void AddMessageToConsole(const WebKit::WebConsoleMessage&) = 0; - - // The current scroll offset from the top of frame in pixels. - virtual WebKit::WebSize ScrollOffset() const = 0; - - // Reformats the WebFrame for printing. page_size is the page size in - // pixels. Returns the number of pages that can be printed at the given page - // size. - virtual int PrintBegin(const WebKit::WebSize& page_size) = 0; - - // Prints one page, and returns the calculated page shrinking factor (usually - // between 1/1.25 and 1/2). Returns 0 if the page number is invalid or not - // in printing mode. - virtual float PrintPage(int page_to_print, WebKit::WebCanvas* canvas) = 0; - - // Reformats the WebFrame for screen display. - virtual void PrintEnd() = 0; - - // Only for test_shell - virtual int PendingFrameUnloadEventCount() const = 0; - - protected: - virtual ~WebFrame() {} - - private: - DISALLOW_COPY_AND_ASSIGN(WebFrame); -}; - -#endif // WEBKIT_GLUE_WEBFRAME_H_ |