diff options
Diffstat (limited to 'content/browser/transition_request_manager.h')
-rw-r--r-- | content/browser/transition_request_manager.h | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/content/browser/transition_request_manager.h b/content/browser/transition_request_manager.h index 3db4d87..65b5792 100644 --- a/content/browser/transition_request_manager.h +++ b/content/browser/transition_request_manager.h @@ -13,6 +13,7 @@ #include "base/basictypes.h" #include "base/memory/ref_counted.h" #include "content/common/content_export.h" +#include "content/public/common/transition_element.h" #include "ui/gfx/geometry/rect.h" #include "url/gurl.h" @@ -33,8 +34,7 @@ struct TransitionLayerData { std::string markup; std::string css_selector; - std::vector<std::string> names; - std::vector<gfx::Rect> rects; + std::vector<TransitionElement> elements; scoped_refptr<net::HttpResponseHeaders> response_headers; GURL request_url; }; @@ -57,10 +57,11 @@ class TransitionRequestManager { std::vector<GURL>& entering_stylesheets, const GURL& resolve_address); - // Returns whether the RenderFrameHost specified by the given IDs currently - // has any pending transition request data. If so, we will have to delay the - // response until the embedder resumes the request. - CONTENT_EXPORT bool HasPendingTransitionRequest( + // Get pending transition request data from RenderFrameHost specified by the + // given IDs and return true if the data exists. For web to web transition, we + // will have to delay the response until the embedder resumes the request if + // the data exists. + CONTENT_EXPORT bool GetPendingTransitionRequest( int render_process_id, int render_frame_id, const GURL& request_url, @@ -74,8 +75,7 @@ class TransitionRequestManager { const std::string& allowed_destination_host_pattern, const std::string& css_selector, const std::string& markup, - const std::vector<std::string>& names, - const std::vector<gfx::Rect>& rects); + const std::vector<TransitionElement>& elements); CONTENT_EXPORT void AddPendingTransitionRequestDataForTesting( int render_process_id, int render_frame_id); @@ -83,6 +83,10 @@ class TransitionRequestManager { CONTENT_EXPORT void ClearPendingTransitionRequestData(int render_process_id, int render_frame_id); + // The maximum number of elements is meant to avoid passing arbitrarily large + // amount of objects across the IPC boundary. + static const int kMaxNumOfElements = 1024; + private: class TransitionRequestData { public: @@ -91,8 +95,7 @@ class TransitionRequestManager { void AddEntry(const std::string& allowed_destination_host_pattern, const std::string& selector, const std::string& markup, - const std::vector<std::string>& names, - const std::vector<gfx::Rect>& rects); + const std::vector<TransitionElement>& elements); bool FindEntry(const GURL& request_url, TransitionLayerData* transition_data); @@ -104,14 +107,12 @@ class TransitionRequestManager { std::string allowed_destination_host_pattern; std::string css_selector; std::string markup; - std::vector<std::string> names; - std::vector<gfx::Rect> rects; + std::vector<TransitionElement> elements; AllowedEntry(const std::string& allowed_destination_host_pattern, const std::string& css_selector, const std::string& markup, - const std::vector<std::string>& names, - const std::vector<gfx::Rect>& rects); + const std::vector<TransitionElement>& elements); ~AllowedEntry(); }; std::vector<AllowedEntry> allowed_entries_; |