|  | // Copyright (c) 2012 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_WEBKIT_GLUE_H_ | 
|  | #define WEBKIT_GLUE_WEBKIT_GLUE_H_ | 
|  |  | 
|  | #include "base/basictypes.h" | 
|  |  | 
|  | #if defined(OS_WIN) | 
|  | #include <windows.h> | 
|  | #endif | 
|  |  | 
|  | #include <string> | 
|  | #include <vector> | 
|  |  | 
|  | #include "base/file_path.h" | 
|  | #include "base/platform_file.h" | 
|  | #include "base/string16.h" | 
|  | #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCanvas.h" | 
|  | #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebReferrerPolicy.h" | 
|  | #include "webkit/glue/webkit_glue_export.h" | 
|  |  | 
|  | class GURL; | 
|  | class SkBitmap; | 
|  |  | 
|  | namespace net { | 
|  | class URLRequest; | 
|  | } | 
|  |  | 
|  | namespace skia { | 
|  | class PlatformCanvas; | 
|  | } | 
|  |  | 
|  | namespace WebKit { | 
|  | struct WebFileInfo; | 
|  | class WebFrame; | 
|  | class WebString; | 
|  | } | 
|  |  | 
|  | namespace webkit_glue { | 
|  |  | 
|  | WEBKIT_GLUE_EXPORT void SetJavaScriptFlags(const std::string& flags); | 
|  |  | 
|  | // Turn on logging for flags in the provided comma delimited list. | 
|  | WEBKIT_GLUE_EXPORT void EnableWebCoreLogChannels(const std::string& channels); | 
|  |  | 
|  | // Returns the text of the document element. | 
|  | WEBKIT_GLUE_EXPORT string16 DumpDocumentText(WebKit::WebFrame* web_frame); | 
|  |  | 
|  | // Returns the text of the document element and optionally its child frames. | 
|  | // If recursive is false, this is equivalent to DumpDocumentText followed by | 
|  | // a newline.  If recursive is true, it recursively dumps all frames as text. | 
|  | string16 DumpFramesAsText(WebKit::WebFrame* web_frame, bool recursive); | 
|  |  | 
|  | // Returns the renderer's description of its tree (its externalRepresentation). | 
|  | WEBKIT_GLUE_EXPORT string16 DumpRenderer(WebKit::WebFrame* web_frame); | 
|  |  | 
|  | // Returns the number of page where the specified element will be put. | 
|  | int PageNumberForElementById(WebKit::WebFrame* web_frame, | 
|  | const std::string& id, | 
|  | float page_width_in_pixels, | 
|  | float page_height_in_pixels); | 
|  |  | 
|  | // Returns the number of pages to be printed. | 
|  | int NumberOfPages(WebKit::WebFrame* web_frame, | 
|  | float page_width_in_pixels, | 
|  | float page_height_in_pixels); | 
|  |  | 
|  | // Returns a dump of the scroll position of the webframe. | 
|  | string16 DumpFrameScrollPosition(WebKit::WebFrame* web_frame, bool recursive); | 
|  |  | 
|  | // Returns a dump of the given history state suitable for implementing the | 
|  | // dumpBackForwardList command of the testRunner. | 
|  | WEBKIT_GLUE_EXPORT string16 DumpHistoryState(const std::string& history_state, | 
|  | int indent, | 
|  | bool is_current); | 
|  |  | 
|  | // Creates serialized state for the specified URL. This is a variant of | 
|  | // HistoryItemToString (in glue_serialize) that is used during session restore | 
|  | // if the saved state is empty. | 
|  | WEBKIT_GLUE_EXPORT std::string CreateHistoryStateForURL(const GURL& url); | 
|  |  | 
|  | // Removes any form data state from the history state string |content_state|. | 
|  | WEBKIT_GLUE_EXPORT std::string RemoveFormDataFromHistoryState( | 
|  | const std::string& content_state); | 
|  |  | 
|  | // Removes form data containing passwords from the history state string | 
|  | // |content_state|. | 
|  | WEBKIT_GLUE_EXPORT std::string RemovePasswordDataFromHistoryState( | 
|  | const std::string& content_state); | 
|  |  | 
|  | // Removes scroll offset from the history state string |content_state|. | 
|  | WEBKIT_GLUE_EXPORT std::string RemoveScrollOffsetFromHistoryState( | 
|  | const std::string& content_state); | 
|  |  | 
|  | #ifndef NDEBUG | 
|  | // Checks various important objects to see if there are any in memory, and | 
|  | // calls AppendToLog with any leaked objects. Designed to be called on | 
|  | // shutdown. | 
|  | WEBKIT_GLUE_EXPORT void CheckForLeaks(); | 
|  | #endif | 
|  |  | 
|  | // Decodes the image from the data in |image_data| into |image|. | 
|  | // Returns false if the image could not be decoded. | 
|  | WEBKIT_GLUE_EXPORT bool DecodeImage(const std::string& image_data, | 
|  | SkBitmap* image); | 
|  |  | 
|  | // Tells the plugin thread to terminate the process forcefully instead of | 
|  | // exiting cleanly. | 
|  | void SetForcefullyTerminatePluginProcess(bool value); | 
|  |  | 
|  | // Returns true if the plugin thread should terminate the process forcefully | 
|  | // instead of exiting cleanly. | 
|  | WEBKIT_GLUE_EXPORT bool ShouldForcefullyTerminatePluginProcess(); | 
|  |  | 
|  | // File path string conversions. | 
|  | WEBKIT_GLUE_EXPORT FilePath::StringType WebStringToFilePathString( | 
|  | const WebKit::WebString& str); | 
|  | WEBKIT_GLUE_EXPORT WebKit::WebString FilePathStringToWebString( | 
|  | const FilePath::StringType& str); | 
|  | WEBKIT_GLUE_EXPORT FilePath WebStringToFilePath(const WebKit::WebString& str); | 
|  | WEBKIT_GLUE_EXPORT WebKit::WebString FilePathToWebString( | 
|  | const FilePath& file_path); | 
|  |  | 
|  | // File info conversion | 
|  | WEBKIT_GLUE_EXPORT void PlatformFileInfoToWebFileInfo( | 
|  | const base::PlatformFileInfo& file_info, | 
|  | WebKit::WebFileInfo* web_file_info); | 
|  |  | 
|  | // Returns a WebCanvas pointer associated with the given Skia canvas. | 
|  | WEBKIT_GLUE_EXPORT WebKit::WebCanvas* ToWebCanvas(skia::PlatformCanvas*); | 
|  |  | 
|  | // Returns the number of currently-active glyph pages this process is using. | 
|  | // There can be many such pages (maps of 256 character -> glyph) so this is | 
|  | // used to get memory usage statistics. | 
|  | WEBKIT_GLUE_EXPORT int GetGlyphPageCount(); | 
|  |  | 
|  | // Returns WebKit Web Inspector protocol version. | 
|  | std::string GetInspectorProtocolVersion(); | 
|  |  | 
|  | // Tells caller whether the given protocol version is supported by the. | 
|  | WEBKIT_GLUE_EXPORT bool IsInspectorProtocolVersionSupported( | 
|  | const std::string& version); | 
|  |  | 
|  | // Configures the URLRequest according to the referrer policy. | 
|  | WEBKIT_GLUE_EXPORT void ConfigureURLRequestForReferrerPolicy( | 
|  | net::URLRequest* request, WebKit::WebReferrerPolicy referrer_policy); | 
|  |  | 
|  | }  // namespace webkit_glue | 
|  |  | 
|  | #endif  // WEBKIT_GLUE_WEBKIT_GLUE_H_ |