| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_RENDERER_RENDER_VIEW_H_ | 5 #ifndef CONTENT_RENDERER_RENDER_VIEW_H_ |
| 6 #define CONTENT_RENDERER_RENDER_VIEW_H_ | 6 #define CONTENT_RENDERER_RENDER_VIEW_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <deque> | 9 #include <deque> |
| 10 #include <map> | 10 #include <map> |
| 11 #include <queue> | 11 #include <queue> |
| 12 #include <set> | 12 #include <set> |
| 13 #include <string> | 13 #include <string> |
| 14 #include <vector> | 14 #include <vector> |
| 15 | 15 |
| 16 #include "base/basictypes.h" | 16 #include "base/basictypes.h" |
| 17 #include "base/gtest_prod_util.h" | 17 #include "base/gtest_prod_util.h" |
| 18 #include "base/id_map.h" | 18 #include "base/id_map.h" |
| 19 #include "base/memory/linked_ptr.h" | 19 #include "base/memory/linked_ptr.h" |
| 20 #include "base/memory/weak_ptr.h" | 20 #include "base/memory/weak_ptr.h" |
| 21 #include "base/observer_list.h" | 21 #include "base/observer_list.h" |
| 22 #include "base/timer.h" | 22 #include "base/timer.h" |
| 23 #include "build/build_config.h" | 23 #include "build/build_config.h" |
| 24 #include "chrome/common/content_settings.h" | |
| 25 #include "content/renderer/renderer_webcookiejar_impl.h" | 24 #include "content/renderer/renderer_webcookiejar_impl.h" |
| 26 #include "content/common/edit_command.h" | 25 #include "content/common/edit_command.h" |
| 27 #include "content/common/navigation_gesture.h" | 26 #include "content/common/navigation_gesture.h" |
| 28 #include "content/common/page_zoom.h" | 27 #include "content/common/page_zoom.h" |
| 29 #include "content/common/renderer_preferences.h" | 28 #include "content/common/renderer_preferences.h" |
| 30 #include "content/renderer/pepper_plugin_delegate_impl.h" | 29 #include "content/renderer/pepper_plugin_delegate_impl.h" |
| 31 #include "content/renderer/render_widget.h" | 30 #include "content/renderer/render_widget.h" |
| 32 #include "ipc/ipc_platform_file.h" | 31 #include "ipc/ipc_platform_file.h" |
| 33 #include "third_party/WebKit/Source/WebKit/chromium/public/WebAccessibilityNotif
ication.h" | 32 #include "third_party/WebKit/Source/WebKit/chromium/public/WebAccessibilityNotif
ication.h" |
| 34 #include "third_party/WebKit/Source/WebKit/chromium/public/WebConsoleMessage.h" | 33 #include "third_party/WebKit/Source/WebKit/chromium/public/WebConsoleMessage.h" |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 | 243 |
| 245 // Adds the given file chooser request to the file_chooser_completion_ queue | 244 // Adds the given file chooser request to the file_chooser_completion_ queue |
| 246 // (see that var for more) and requests the chooser be displayed if there are | 245 // (see that var for more) and requests the chooser be displayed if there are |
| 247 // no other waiting items in the queue. | 246 // no other waiting items in the queue. |
| 248 // | 247 // |
| 249 // Returns true if the chooser was successfully scheduled. False means we | 248 // Returns true if the chooser was successfully scheduled. False means we |
| 250 // didn't schedule anything. | 249 // didn't schedule anything. |
| 251 bool ScheduleFileChooser(const ViewHostMsg_RunFileChooser_Params& params, | 250 bool ScheduleFileChooser(const ViewHostMsg_RunFileChooser_Params& params, |
| 252 WebKit::WebFileChooserCompletion* completion); | 251 WebKit::WebFileChooserCompletion* completion); |
| 253 | 252 |
| 254 // Sets the content settings that back allowScripts(), allowImages(), and | |
| 255 // allowPlugins(). | |
| 256 void SetContentSettings(const ContentSettings& settings); | |
| 257 | |
| 258 // Sets whether the renderer should report load progress to the browser. | 253 // Sets whether the renderer should report load progress to the browser. |
| 259 void SetReportLoadProgressEnabled(bool enabled); | 254 void SetReportLoadProgressEnabled(bool enabled); |
| 260 | 255 |
| 261 // Gets the focused node. If no such node exists then the node will be isNull. | 256 // Gets the focused node. If no such node exists then the node will be isNull. |
| 262 WebKit::WebNode GetFocusedNode() const; | 257 WebKit::WebNode GetFocusedNode() const; |
| 263 | 258 |
| 264 // Returns true if the parameter node is a textfield, text area or a content | 259 // Returns true if the parameter node is a textfield, text area or a content |
| 265 // editable div. | 260 // editable div. |
| 266 bool IsEditableNode(const WebKit::WebNode& node); | 261 bool IsEditableNode(const WebKit::WebNode& node); |
| 267 | 262 |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 const WebKit::WebString& name, unsigned long long documentId); | 434 const WebKit::WebString& name, unsigned long long documentId); |
| 440 virtual WebKit::WebMediaPlayer* createMediaPlayer( | 435 virtual WebKit::WebMediaPlayer* createMediaPlayer( |
| 441 WebKit::WebFrame* frame, | 436 WebKit::WebFrame* frame, |
| 442 WebKit::WebMediaPlayerClient* client); | 437 WebKit::WebMediaPlayerClient* client); |
| 443 virtual WebKit::WebApplicationCacheHost* createApplicationCacheHost( | 438 virtual WebKit::WebApplicationCacheHost* createApplicationCacheHost( |
| 444 WebKit::WebFrame* frame, | 439 WebKit::WebFrame* frame, |
| 445 WebKit::WebApplicationCacheHostClient* client); | 440 WebKit::WebApplicationCacheHostClient* client); |
| 446 virtual WebKit::WebCookieJar* cookieJar(WebKit::WebFrame* frame); | 441 virtual WebKit::WebCookieJar* cookieJar(WebKit::WebFrame* frame); |
| 447 virtual void frameDetached(WebKit::WebFrame* frame); | 442 virtual void frameDetached(WebKit::WebFrame* frame); |
| 448 virtual void willClose(WebKit::WebFrame* frame); | 443 virtual void willClose(WebKit::WebFrame* frame); |
| 449 virtual bool allowImages(WebKit::WebFrame* frame, bool enabled_per_settings); | |
| 450 virtual bool allowPlugins(WebKit::WebFrame* frame, bool enabled_per_settings); | |
| 451 virtual void loadURLExternally(WebKit::WebFrame* frame, | 444 virtual void loadURLExternally(WebKit::WebFrame* frame, |
| 452 const WebKit::WebURLRequest& request, | 445 const WebKit::WebURLRequest& request, |
| 453 WebKit::WebNavigationPolicy policy); | 446 WebKit::WebNavigationPolicy policy); |
| 454 virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( | 447 virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( |
| 455 WebKit::WebFrame* frame, | 448 WebKit::WebFrame* frame, |
| 456 const WebKit::WebURLRequest& request, | 449 const WebKit::WebURLRequest& request, |
| 457 WebKit::WebNavigationType type, | 450 WebKit::WebNavigationType type, |
| 458 const WebKit::WebNode&, | 451 const WebKit::WebNode&, |
| 459 WebKit::WebNavigationPolicy default_policy, | 452 WebKit::WebNavigationPolicy default_policy, |
| 460 bool is_redirect); | 453 bool is_redirect); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 virtual void didLoadResourceFromMemoryCache( | 517 virtual void didLoadResourceFromMemoryCache( |
| 525 WebKit::WebFrame* frame, | 518 WebKit::WebFrame* frame, |
| 526 const WebKit::WebURLRequest& request, | 519 const WebKit::WebURLRequest& request, |
| 527 const WebKit::WebURLResponse&); | 520 const WebKit::WebURLResponse&); |
| 528 virtual void didDisplayInsecureContent(WebKit::WebFrame* frame); | 521 virtual void didDisplayInsecureContent(WebKit::WebFrame* frame); |
| 529 virtual void didRunInsecureContent( | 522 virtual void didRunInsecureContent( |
| 530 WebKit::WebFrame* frame, | 523 WebKit::WebFrame* frame, |
| 531 const WebKit::WebSecurityOrigin& origin, | 524 const WebKit::WebSecurityOrigin& origin, |
| 532 const WebKit::WebURL& target); | 525 const WebKit::WebURL& target); |
| 533 | 526 |
| 527 virtual bool allowImages(WebKit::WebFrame* frame, bool enabled_per_settings); |
| 528 virtual bool allowPlugins(WebKit::WebFrame* frame, bool enabled_per_settings); |
| 534 virtual bool allowScript(WebKit::WebFrame* frame, bool enabled_per_settings); | 529 virtual bool allowScript(WebKit::WebFrame* frame, bool enabled_per_settings); |
| 535 virtual bool allowDatabase(WebKit::WebFrame* frame, | 530 virtual bool allowDatabase(WebKit::WebFrame* frame, |
| 536 const WebKit::WebString& name, | 531 const WebKit::WebString& name, |
| 537 const WebKit::WebString& display_name, | 532 const WebKit::WebString& display_name, |
| 538 unsigned long estimated_size); | 533 unsigned long estimated_size); |
| 539 virtual void didNotAllowScript(WebKit::WebFrame* frame); | 534 virtual void didNotAllowScript(WebKit::WebFrame* frame); |
| 540 virtual void didNotAllowPlugins(WebKit::WebFrame* frame); | 535 virtual void didNotAllowPlugins(WebKit::WebFrame* frame); |
| 541 virtual void didExhaustMemoryAvailableForScript(WebKit::WebFrame* frame); | 536 virtual void didExhaustMemoryAvailableForScript(WebKit::WebFrame* frame); |
| 542 virtual void didCreateScriptContext(WebKit::WebFrame* frame); | 537 virtual void didCreateScriptContext(WebKit::WebFrame* frame); |
| 543 virtual void didDestroyScriptContext(WebKit::WebFrame* frame); | 538 virtual void didDestroyScriptContext(WebKit::WebFrame* frame); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, LastCommittedUpdateState); | 632 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, LastCommittedUpdateState); |
| 638 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnHandleKeyboardEvent); | 633 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnHandleKeyboardEvent); |
| 639 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnImeStateChanged); | 634 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnImeStateChanged); |
| 640 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnNavStateChanged); | 635 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnNavStateChanged); |
| 641 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnSetTextDirection); | 636 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnSetTextDirection); |
| 642 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, UpdateTargetURLWithInvalidURL); | 637 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, UpdateTargetURLWithInvalidURL); |
| 643 #if defined(OS_MACOSX) | 638 #if defined(OS_MACOSX) |
| 644 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, MacTestCmdUp); | 639 FRIEND_TEST_ALL_PREFIXES(RenderViewTest, MacTestCmdUp); |
| 645 #endif | 640 #endif |
| 646 | 641 |
| 647 typedef std::map<GURL, ContentSettings> HostContentSettings; | |
| 648 typedef std::map<GURL, double> HostZoomLevels; | 642 typedef std::map<GURL, double> HostZoomLevels; |
| 649 | 643 |
| 650 // Identifies an accessibility notification from webkit. | 644 // Identifies an accessibility notification from webkit. |
| 651 struct RendererAccessibilityNotification { | 645 struct RendererAccessibilityNotification { |
| 652 public: | 646 public: |
| 653 bool ShouldIncludeChildren(); | 647 bool ShouldIncludeChildren(); |
| 654 | 648 |
| 655 // The webkit glue id of the accessibility object. | 649 // The webkit glue id of the accessibility object. |
| 656 int32 id; | 650 int32 id; |
| 657 | 651 |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 796 void OnResetPageEncodingToDefault(); | 790 void OnResetPageEncodingToDefault(); |
| 797 void OnScriptEvalRequest(const string16& frame_xpath, | 791 void OnScriptEvalRequest(const string16& frame_xpath, |
| 798 const string16& jscript, | 792 const string16& jscript, |
| 799 int id, | 793 int id, |
| 800 bool notify_result); | 794 bool notify_result); |
| 801 void OnSelectAll(); | 795 void OnSelectAll(); |
| 802 void OnSetAccessibilityFocus(int acc_obj_id); | 796 void OnSetAccessibilityFocus(int acc_obj_id); |
| 803 void OnSetActive(bool active); | 797 void OnSetActive(bool active); |
| 804 void OnSetAltErrorPageURL(const GURL& gurl); | 798 void OnSetAltErrorPageURL(const GURL& gurl); |
| 805 void OnSetBackground(const SkBitmap& background); | 799 void OnSetBackground(const SkBitmap& background); |
| 806 void OnSetContentSettingsForLoadingURL( | |
| 807 const GURL& url, | |
| 808 const ContentSettings& content_settings); | |
| 809 void OnSetWebUIProperty(const std::string& name, const std::string& value); | 800 void OnSetWebUIProperty(const std::string& name, const std::string& value); |
| 810 void OnSetEditCommandsForNextKeyEvent(const EditCommands& edit_commands); | 801 void OnSetEditCommandsForNextKeyEvent(const EditCommands& edit_commands); |
| 811 void OnSetInitialFocus(bool reverse); | 802 void OnSetInitialFocus(bool reverse); |
| 812 void OnScrollFocusedEditableNodeIntoView(); | 803 void OnScrollFocusedEditableNodeIntoView(); |
| 813 void OnSetPageEncoding(const std::string& encoding_name); | 804 void OnSetPageEncoding(const std::string& encoding_name); |
| 814 void OnSetRendererPrefs(const RendererPreferences& renderer_prefs); | 805 void OnSetRendererPrefs(const RendererPreferences& renderer_prefs); |
| 815 #if defined(OS_MACOSX) | 806 #if defined(OS_MACOSX) |
| 816 void OnSetWindowVisibility(bool visible); | 807 void OnSetWindowVisibility(bool visible); |
| 817 #endif | 808 #endif |
| 818 void OnSetZoomLevel(double zoom_level); | 809 void OnSetZoomLevel(double zoom_level); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 829 const gfx::Rect& view_frame); | 820 const gfx::Rect& view_frame); |
| 830 void OnSelectPopupMenuItem(int selected_index); | 821 void OnSelectPopupMenuItem(int selected_index); |
| 831 #endif | 822 #endif |
| 832 void OnZoom(PageZoom::Function function); | 823 void OnZoom(PageZoom::Function function); |
| 833 | 824 |
| 834 // Adding a new message handler? Please add it in alphabetical order above | 825 // Adding a new message handler? Please add it in alphabetical order above |
| 835 // and put it in the same position in the .cc file. | 826 // and put it in the same position in the .cc file. |
| 836 | 827 |
| 837 // Misc private functions ---------------------------------------------------- | 828 // Misc private functions ---------------------------------------------------- |
| 838 | 829 |
| 839 // Helper method that returns if the user wants to block content of type | |
| 840 // |content_type|. | |
| 841 bool AllowContentType(ContentSettingsType settings_type); | |
| 842 | |
| 843 void AltErrorPageFinished(WebKit::WebFrame* frame, | 830 void AltErrorPageFinished(WebKit::WebFrame* frame, |
| 844 const WebKit::WebURLError& original_error, | 831 const WebKit::WebURLError& original_error, |
| 845 const std::string& html); | 832 const std::string& html); |
| 846 | 833 |
| 847 // Check whether the preferred size has changed. This is called periodically | 834 // Check whether the preferred size has changed. This is called periodically |
| 848 // by preferred_size_change_timer_. | 835 // by preferred_size_change_timer_. |
| 849 void CheckPreferredSize(); | 836 void CheckPreferredSize(); |
| 850 | 837 |
| 851 // Resets the |content_blocked_| array. | 838 // This callback is triggered when DownloadFavicon completes, either |
| 852 void ClearBlockedContentSettings(); | 839 // succesfully or with a failure. See DownloadFavicon for more |
| 840 // details. |
| 841 void DidDownloadFavicon(webkit_glue::ImageResourceFetcher* fetcher, |
| 842 const SkBitmap& image); |
| 853 | 843 |
| 854 // Sends an IPC notification that the specified content type was blocked. | 844 // Requests to download a favicon image. When done, the RenderView |
| 855 // If the content type requires it, |resource_identifier| names the specific | 845 // is notified by way of DidDownloadFavicon. Returns true if the |
| 856 // resource that was blocked (the plugin path in the case of plugins), | 846 // request was successfully started, false otherwise. id is used to |
| 857 // otherwise it's the empty string. | 847 // uniquely identify the request and passed back to the |
| 858 void DidBlockContentType(ContentSettingsType settings_type, | 848 // DidDownloadFavicon method. If the image has multiple frames, the |
| 859 const std::string& resource_identifier); | 849 // frame whose size is image_size is returned. If the image doesn't |
| 850 // have a frame at the specified size, the first is returned. |
| 851 bool DownloadFavicon(int id, const GURL& image_url, int image_size); |
| 860 | 852 |
| 861 GURL GetAlternateErrorPageURL(const GURL& failed_url, | 853 GURL GetAlternateErrorPageURL(const GURL& failed_url, |
| 862 ErrorPageType error_type); | 854 ErrorPageType error_type); |
| 863 | 855 |
| 864 // Locates a sub frame with given xpath | 856 // Locates a sub frame with given xpath |
| 865 WebKit::WebFrame* GetChildFrame(const std::wstring& frame_xpath) const; | 857 WebKit::WebFrame* GetChildFrame(const std::wstring& frame_xpath) const; |
| 866 | 858 |
| 867 WebUIBindings* GetWebUIBindings(); | 859 WebUIBindings* GetWebUIBindings(); |
| 868 | 860 |
| 869 // Should only be called if this object wraps a PluginDocument. | 861 // Should only be called if this object wraps a PluginDocument. |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 905 // --------------------------------------------------------------------------- | 897 // --------------------------------------------------------------------------- |
| 906 // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put | 898 // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put |
| 907 // it in the same order in the .cc file as it was in the header. | 899 // it in the same order in the .cc file as it was in the header. |
| 908 // --------------------------------------------------------------------------- | 900 // --------------------------------------------------------------------------- |
| 909 | 901 |
| 910 // Settings ------------------------------------------------------------------ | 902 // Settings ------------------------------------------------------------------ |
| 911 | 903 |
| 912 WebPreferences webkit_preferences_; | 904 WebPreferences webkit_preferences_; |
| 913 RendererPreferences renderer_preferences_; | 905 RendererPreferences renderer_preferences_; |
| 914 | 906 |
| 915 HostContentSettings host_content_settings_; | |
| 916 HostZoomLevels host_zoom_levels_; | 907 HostZoomLevels host_zoom_levels_; |
| 917 | 908 |
| 918 // Whether content state (such as form state, scroll position and page | 909 // Whether content state (such as form state, scroll position and page |
| 919 // contents) should be sent to the browser immediately. This is normally | 910 // contents) should be sent to the browser immediately. This is normally |
| 920 // false, but set to true by some tests. | 911 // false, but set to true by some tests. |
| 921 bool send_content_state_immediately_; | 912 bool send_content_state_immediately_; |
| 922 | 913 |
| 923 // Stores if loading of images, scripts, and plugins is allowed. | |
| 924 ContentSettings current_content_settings_; | |
| 925 | |
| 926 // Bitwise-ORed set of extra bindings that have been enabled. See | 914 // Bitwise-ORed set of extra bindings that have been enabled. See |
| 927 // BindingsPolicy for details. | 915 // BindingsPolicy for details. |
| 928 int enabled_bindings_; | 916 int enabled_bindings_; |
| 929 | 917 |
| 930 // The alternate error page URL, if one exists. | 918 // The alternate error page URL, if one exists. |
| 931 GURL alternate_error_page_url_; | 919 GURL alternate_error_page_url_; |
| 932 | 920 |
| 933 // If true, we send IPC messages when |preferred_size_| changes. | 921 // If true, we send IPC messages when |preferred_size_| changes. |
| 934 bool send_preferred_size_changes_; | 922 bool send_preferred_size_changes_; |
| 935 | 923 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 960 // opener. If so, we may want to load pages in a separate process. See | 948 // opener. If so, we may want to load pages in a separate process. See |
| 961 // decidePolicyForNavigation for details. | 949 // decidePolicyForNavigation for details. |
| 962 bool opener_suppressed_; | 950 bool opener_suppressed_; |
| 963 | 951 |
| 964 // If we are handling a top-level client-side redirect, this tracks the URL | 952 // If we are handling a top-level client-side redirect, this tracks the URL |
| 965 // of the page that initiated it. Specifically, when a load is committed this | 953 // of the page that initiated it. Specifically, when a load is committed this |
| 966 // is used to determine if that load originated from a client-side redirect. | 954 // is used to determine if that load originated from a client-side redirect. |
| 967 // It is empty if there is no top-level client-side redirect. | 955 // It is empty if there is no top-level client-side redirect. |
| 968 GURL completed_client_redirect_src_; | 956 GURL completed_client_redirect_src_; |
| 969 | 957 |
| 970 // Stores if images, scripts, and plugins have actually been blocked. | |
| 971 bool content_blocked_[CONTENT_SETTINGS_NUM_TYPES]; | |
| 972 | |
| 973 // Holds state pertaining to a navigation that we initiated. This is held by | 958 // Holds state pertaining to a navigation that we initiated. This is held by |
| 974 // the WebDataSource::ExtraData attribute. We use pending_navigation_state_ | 959 // the WebDataSource::ExtraData attribute. We use pending_navigation_state_ |
| 975 // as a temporary holder for the state until the WebDataSource corresponding | 960 // as a temporary holder for the state until the WebDataSource corresponding |
| 976 // to the new navigation is created. See DidCreateDataSource. | 961 // to the new navigation is created. See DidCreateDataSource. |
| 977 scoped_ptr<NavigationState> pending_navigation_state_; | 962 scoped_ptr<NavigationState> pending_navigation_state_; |
| 978 | 963 |
| 979 // Timer used to delay the updating of nav state (see SyncNavigationState). | 964 // Timer used to delay the updating of nav state (see SyncNavigationState). |
| 980 base::OneShotTimer<RenderView> nav_state_sync_timer_; | 965 base::OneShotTimer<RenderView> nav_state_sync_timer_; |
| 981 | 966 |
| 982 // True if the RenderView is currently prerendering a page. | 967 // True if the RenderView is currently prerendering a page. |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1180 // bunch of stuff, you should probably create a helper class and put your | 1165 // bunch of stuff, you should probably create a helper class and put your |
| 1181 // data and methods on that to avoid bloating RenderView more. You can use | 1166 // data and methods on that to avoid bloating RenderView more. You can use |
| 1182 // the Observer interface to filter IPC messages and receive frame change | 1167 // the Observer interface to filter IPC messages and receive frame change |
| 1183 // notifications. | 1168 // notifications. |
| 1184 // --------------------------------------------------------------------------- | 1169 // --------------------------------------------------------------------------- |
| 1185 | 1170 |
| 1186 DISALLOW_COPY_AND_ASSIGN(RenderView); | 1171 DISALLOW_COPY_AND_ASSIGN(RenderView); |
| 1187 }; | 1172 }; |
| 1188 | 1173 |
| 1189 #endif // CONTENT_RENDERER_RENDER_VIEW_H_ | 1174 #endif // CONTENT_RENDERER_RENDER_VIEW_H_ |
| OLD | NEW |