1 // Copyright (c) 2010 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 WEBKIT_GLUE_DOM_OPERATIONS_H__ 6 #define WEBKIT_GLUE_DOM_OPERATIONS_H__ 7 8 #include <string> 9 #include <vector> 10 11 #include "googleurl/src/gurl.h" 12 13 namespace WebKit { 14 class WebDocument; 15 class WebElement; 16 class WebString; 17 class WebView; 18 } 19 20 // A collection of operations that access the underlying WebKit DOM directly. 21 namespace webkit_glue { 22 23 // Structure for storage the result of getting all savable resource links 24 // for current page. The consumer of the SavableResourcesResult is responsible 25 // for keeping these pointers valid for the lifetime of the 26 // SavableResourcesResult instance. 27 struct SavableResourcesResult { 28 // vector which contains all savable links of sub resource. 29 std::vector<GURL>* resources_list; 30 // vector which contains corresponding all referral links of sub resource, 31 // it matched with links one by one. 32 std::vector<GURL>* referrers_list; 33 // vector which contains all savable links of main frame and sub frames. 34 std::vector<GURL>* frames_list; 35 36 // Constructor. 37 SavableResourcesResult(std::vector<GURL>* resources_list, 38 std::vector<GURL>* referrers_list, 39 std::vector<GURL>* frames_list) 40 : resources_list(resources_list), 41 referrers_list(referrers_list), 42 frames_list(frames_list) { } 43 44 private: 45 DISALLOW_COPY_AND_ASSIGN(SavableResourcesResult); 46 }; 47 48 // Get all savable resource links from current webview, include main frame 49 // and sub-frame. After collecting all savable resource links, this function 50 // will send those links to embedder. Return value indicates whether we get 51 // all saved resource links successfully. 52 bool GetAllSavableResourceLinksForCurrentPage(WebKit::WebView* view, 53 const GURL& page_url, SavableResourcesResult* savable_resources_result, 54 const char** savable_schemes); 55 56 // Invokes pauseAnimationAtTime on the AnimationController associated with the 57 // |view|s main frame. 58 // This is used by test shell. 59 bool PauseAnimationAtTimeOnElementWithId(WebKit::WebView* view, 60 const std::string& animation_name, 61 double time, 62 const std::string& element_id); 63 64 // Invokes pauseTransitionAtTime on the AnimationController associated with the 65 // |view|s main frame. 66 // This is used by test shell. 67 bool PauseTransitionAtTimeOnElementWithId(WebKit::WebView* view, 68 const std::string& property_name, 69 double time, 70 const std::string& element_id); 71 72 // Returns true if the element with |element_id| as its id has autocomplete 73 // on. 74 bool ElementDoesAutoCompleteForElementWithId(WebKit::WebView* view, 75 const std::string& element_id); 76 77 // Returns the number of animations currently running. 78 int NumberOfActiveAnimations(WebKit::WebView* view); 79 80 // Returns the value in an elements resource url attribute. For IMG, SCRIPT or 81 // INPUT TYPE=image, returns the value in "src". For LINK TYPE=text/css, returns 82 // the value in "href". For BODY, TABLE, TR, TD, returns the value in 83 // "background". For BLOCKQUOTE, Q, DEL, INS, returns the value in "cite" 84 // attribute. Otherwise returns a null WebString. 85 WebKit::WebString GetSubResourceLinkFromElement( 86 const WebKit::WebElement& element); 87 88 // Puts the meta-elements of |document| that have the attribute |attribute_name| 89 // with a value of |attribute_value| in |meta_elements|. 90 void GetMetaElementsWithAttribute( 91 WebKit::WebDocument* document, 92 const string16& attribute_name, 93 const string16& atribute_value, 94 std::vector<WebKit::WebElement>* meta_elements); 95 96 } // namespace webkit_glue 97 98 #endif // WEBKIT_GLUE_DOM_OPERATIONS_H__ 99