// Copyright (c) 2010 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_DOM_OPERATIONS_H__ #define WEBKIT_GLUE_DOM_OPERATIONS_H__ #include <string> #include <vector> #include "googleurl/src/gurl.h" namespace WebKit { class WebDocument; class WebElement; class WebString; class WebView; } // A collection of operations that access the underlying WebKit DOM directly. namespace webkit_glue { // Structure for storage the result of getting all savable resource links // for current page. The consumer of the SavableResourcesResult is responsible // for keeping these pointers valid for the lifetime of the // SavableResourcesResult instance. struct SavableResourcesResult { // vector which contains all savable links of sub resource. std::vector<GURL>* resources_list; // vector which contains corresponding all referral links of sub resource, // it matched with links one by one. std::vector<GURL>* referrers_list; // vector which contains all savable links of main frame and sub frames. std::vector<GURL>* frames_list; // Constructor. SavableResourcesResult(std::vector<GURL>* resources_list, std::vector<GURL>* referrers_list, std::vector<GURL>* frames_list) : resources_list(resources_list), referrers_list(referrers_list), frames_list(frames_list) { } private: DISALLOW_COPY_AND_ASSIGN(SavableResourcesResult); }; // Get all savable resource links from current webview, include main frame // and sub-frame. After collecting all savable resource links, this function // will send those links to embedder. Return value indicates whether we get // all saved resource links successfully. bool GetAllSavableResourceLinksForCurrentPage(WebKit::WebView* view, const GURL& page_url, SavableResourcesResult* savable_resources_result, const char** savable_schemes); // Invokes pauseAnimationAtTime on the AnimationController associated with the // |view|s main frame. // This is used by test shell. bool PauseAnimationAtTimeOnElementWithId(WebKit::WebView* view, const std::string& animation_name, double time, const std::string& element_id); // Invokes pauseTransitionAtTime on the AnimationController associated with the // |view|s main frame. // This is used by test shell. bool PauseTransitionAtTimeOnElementWithId(WebKit::WebView* view, const std::string& property_name, double time, const std::string& element_id); // Returns true if the element with |element_id| as its id has autocomplete // on. bool ElementDoesAutoCompleteForElementWithId(WebKit::WebView* view, const std::string& element_id); // Returns the number of animations currently running. int NumberOfActiveAnimations(WebKit::WebView* view); // Returns the value in an elements resource url attribute. For IMG, SCRIPT or // INPUT TYPE=image, returns the value in "src". For LINK TYPE=text/css, returns // the value in "href". For BODY, TABLE, TR, TD, returns the value in // "background". For BLOCKQUOTE, Q, DEL, INS, returns the value in "cite" // attribute. Otherwise returns a null WebString. WebKit::WebString GetSubResourceLinkFromElement( const WebKit::WebElement& element); // Puts the meta-elements of |document| that have the attribute |attribute_name| // with a value of |attribute_value| in |meta_elements|. void GetMetaElementsWithAttribute( WebKit::WebDocument* document, const string16& attribute_name, const string16& atribute_value, std::vector<WebKit::WebElement>* meta_elements); } // namespace webkit_glue #endif // WEBKIT_GLUE_DOM_OPERATIONS_H__