Home | History | Annotate | Download | only in glue
      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