OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_FRAME_IMPL_H_ | 5 #ifndef CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ |
6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ | 6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 | 67 |
68 namespace media { | 68 namespace media { |
69 class MediaPermission; | 69 class MediaPermission; |
70 class WebEncryptedMediaClientImpl; | 70 class WebEncryptedMediaClientImpl; |
71 } | 71 } |
72 | 72 |
73 namespace content { | 73 namespace content { |
74 | 74 |
75 class ChildFrameCompositingHelper; | 75 class ChildFrameCompositingHelper; |
76 class CompositorDependencies; | 76 class CompositorDependencies; |
| 77 class DocumentState; |
77 class ExternalPopupMenu; | 78 class ExternalPopupMenu; |
78 class GeolocationDispatcher; | 79 class GeolocationDispatcher; |
79 class ManifestManager; | 80 class ManifestManager; |
80 class MediaStreamDispatcher; | 81 class MediaStreamDispatcher; |
81 class MediaStreamRendererFactory; | 82 class MediaStreamRendererFactory; |
82 class MediaPermissionDispatcher; | 83 class MediaPermissionDispatcher; |
83 class MidiDispatcher; | 84 class MidiDispatcher; |
| 85 class NavigationState; |
84 class NotificationPermissionDispatcher; | 86 class NotificationPermissionDispatcher; |
85 class PageState; | 87 class PageState; |
86 class PepperPluginInstanceImpl; | 88 class PepperPluginInstanceImpl; |
87 class PermissionManager; | 89 class PermissionManager; |
88 class PresentationDispatcher; | 90 class PresentationDispatcher; |
89 class PushMessagingDispatcher; | 91 class PushMessagingDispatcher; |
90 class RendererAccessibility; | 92 class RendererAccessibility; |
91 class RendererCdmManager; | 93 class RendererCdmManager; |
92 class RendererMediaPlayerManager; | 94 class RendererMediaPlayerManager; |
93 class RendererPpapiHost; | 95 class RendererPpapiHost; |
94 class RenderFrameObserver; | 96 class RenderFrameObserver; |
95 class RenderViewImpl; | 97 class RenderViewImpl; |
96 class RenderWidget; | 98 class RenderWidget; |
97 class RenderWidgetFullscreenPepper; | 99 class RenderWidgetFullscreenPepper; |
98 class ScreenOrientationDispatcher; | 100 class ScreenOrientationDispatcher; |
99 class UserMediaClientImpl; | 101 class UserMediaClientImpl; |
100 enum class SandboxFlags; | 102 enum class SandboxFlags; |
101 struct CommonNavigationParams; | 103 struct CommonNavigationParams; |
102 struct CustomContextMenuContext; | 104 struct CustomContextMenuContext; |
103 struct FrameReplicationState; | 105 struct FrameReplicationState; |
| 106 struct NavigationParams; |
104 struct RequestNavigationParams; | 107 struct RequestNavigationParams; |
105 struct ResourceResponseHead; | 108 struct ResourceResponseHead; |
106 struct StartNavigationParams; | 109 struct StartNavigationParams; |
107 | 110 |
108 class CONTENT_EXPORT RenderFrameImpl | 111 class CONTENT_EXPORT RenderFrameImpl |
109 : public RenderFrame, | 112 : public RenderFrame, |
110 NON_EXPORTED_BASE(public blink::WebFrameClient), | 113 NON_EXPORTED_BASE(public blink::WebFrameClient), |
111 NON_EXPORTED_BASE(public media::WebMediaPlayerDelegate) { | 114 NON_EXPORTED_BASE(public media::WebMediaPlayerDelegate) { |
112 public: | 115 public: |
113 // Creates a new RenderFrame. |render_view| is the RenderView object that this | 116 // Creates a new RenderFrame. |render_view| is the RenderView object that this |
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 // TODO(nasko): Remove this method once swapped out state is no longer used. | 537 // TODO(nasko): Remove this method once swapped out state is no longer used. |
535 void NavigateToSwappedOutURL(); | 538 void NavigateToSwappedOutURL(); |
536 | 539 |
537 // Binds this render frame's service registry. | 540 // Binds this render frame's service registry. |
538 void BindServiceRegistry( | 541 void BindServiceRegistry( |
539 mojo::InterfaceRequest<mojo::ServiceProvider> services, | 542 mojo::InterfaceRequest<mojo::ServiceProvider> services, |
540 mojo::ServiceProviderPtr exposed_services); | 543 mojo::ServiceProviderPtr exposed_services); |
541 | 544 |
542 ManifestManager* manifest_manager(); | 545 ManifestManager* manifest_manager(); |
543 | 546 |
| 547 // TODO(creis): Remove when the only caller, the HistoryController, is no |
| 548 // more. |
| 549 void SetPendingNavigationParams( |
| 550 scoped_ptr<NavigationParams> navigation_params); |
| 551 |
544 protected: | 552 protected: |
545 RenderFrameImpl(RenderViewImpl* render_view, int32 routing_id); | 553 RenderFrameImpl(RenderViewImpl* render_view, int32 routing_id); |
546 | 554 |
547 private: | 555 private: |
548 friend class RenderFrameObserver; | 556 friend class RenderFrameObserver; |
549 friend class RendererAccessibilityTest; | 557 friend class RendererAccessibilityTest; |
550 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuDisplayNoneTest, SelectItem); | 558 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuDisplayNoneTest, SelectItem); |
551 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuRemoveTest, RemoveOnChange); | 559 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuRemoveTest, RemoveOnChange); |
552 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, NormalCase); | 560 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, NormalCase); |
553 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, ShowPopupThenNavigate); | 561 FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, ShowPopupThenNavigate); |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
712 // of the WebURLRequest. | 720 // of the WebURLRequest. |
713 void BeginNavigation(blink::WebURLRequest* request); | 721 void BeginNavigation(blink::WebURLRequest* request); |
714 | 722 |
715 // Loads a data url. | 723 // Loads a data url. |
716 void LoadDataURL(const CommonNavigationParams& params, | 724 void LoadDataURL(const CommonNavigationParams& params, |
717 blink::WebFrame* frame); | 725 blink::WebFrame* frame); |
718 | 726 |
719 // Returns the URL being loaded by the |frame_|'s request. | 727 // Returns the URL being loaded by the |frame_|'s request. |
720 GURL GetLoadingUrl() const; | 728 GURL GetLoadingUrl() const; |
721 | 729 |
| 730 // If we initiated a navigation, this function will populate |document_state| |
| 731 // with the navigation information saved in OnNavigate(). |
| 732 void PopulateDocumentStateFromPending(DocumentState* document_state); |
| 733 |
| 734 // Returns a new NavigationState populated with the navigation information |
| 735 // saved in OnNavigate(). |
| 736 NavigationState* CreateNavigationStateFromPending(); |
| 737 |
722 #if defined(OS_ANDROID) | 738 #if defined(OS_ANDROID) |
723 blink::WebMediaPlayer* CreateAndroidWebMediaPlayer( | 739 blink::WebMediaPlayer* CreateAndroidWebMediaPlayer( |
724 const blink::WebURL& url, | 740 const blink::WebURL& url, |
725 blink::WebMediaPlayerClient* client, | 741 blink::WebMediaPlayerClient* client, |
726 media::MediaPermission* media_permission, | 742 media::MediaPermission* media_permission, |
727 blink::WebContentDecryptionModule* initial_cdm); | 743 blink::WebContentDecryptionModule* initial_cdm); |
728 | 744 |
729 RendererMediaPlayerManager* GetMediaPlayerManager(); | 745 RendererMediaPlayerManager* GetMediaPlayerManager(); |
730 #endif | 746 #endif |
731 | 747 |
(...skipping 22 matching lines...) Expand all Loading... |
754 // TODO(creis): Remove this after switching to PlzNavigate. | 770 // TODO(creis): Remove this after switching to PlzNavigate. |
755 int proxy_routing_id_; | 771 int proxy_routing_id_; |
756 | 772 |
757 // Used when the RenderFrame is a local root. For now, RenderWidgets are | 773 // Used when the RenderFrame is a local root. For now, RenderWidgets are |
758 // added only when a child frame is in a different process from its parent | 774 // added only when a child frame is in a different process from its parent |
759 // frame, but eventually this will also apply to top-level frames. | 775 // frame, but eventually this will also apply to top-level frames. |
760 // TODO(kenrb): Correct the above statement when top-level frames have their | 776 // TODO(kenrb): Correct the above statement when top-level frames have their |
761 // own RenderWidgets. | 777 // own RenderWidgets. |
762 scoped_refptr<RenderWidget> render_widget_; | 778 scoped_refptr<RenderWidget> render_widget_; |
763 | 779 |
| 780 // Temporarily holds state pertaining to a navigation that has been initiated |
| 781 // until the NavigationState corresponding to the new navigation is created in |
| 782 // didCreateDataSource(). |
| 783 scoped_ptr<NavigationParams> pending_navigation_params_; |
| 784 |
764 #if defined(ENABLE_PLUGINS) | 785 #if defined(ENABLE_PLUGINS) |
765 // Current text input composition text. Empty if no composition is in | 786 // Current text input composition text. Empty if no composition is in |
766 // progress. | 787 // progress. |
767 base::string16 pepper_composition_text_; | 788 base::string16 pepper_composition_text_; |
768 | 789 |
769 PluginPowerSaverHelper* plugin_power_saver_helper_; | 790 PluginPowerSaverHelper* plugin_power_saver_helper_; |
770 #endif | 791 #endif |
771 | 792 |
772 RendererWebCookieJarImpl cookie_jar_; | 793 RendererWebCookieJarImpl cookie_jar_; |
773 | 794 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
881 #endif | 902 #endif |
882 | 903 |
883 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; | 904 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; |
884 | 905 |
885 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); | 906 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); |
886 }; | 907 }; |
887 | 908 |
888 } // namespace content | 909 } // namespace content |
889 | 910 |
890 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ | 911 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ |
OLD | NEW |