summaryrefslogtreecommitdiff
path: root/chromium/content/renderer/render_frame_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/renderer/render_frame_impl.h')
-rw-r--r--chromium/content/renderer/render_frame_impl.h161
1 files changed, 42 insertions, 119 deletions
diff --git a/chromium/content/renderer/render_frame_impl.h b/chromium/content/renderer/render_frame_impl.h
index 0963dea51a8..c6d8de45561 100644
--- a/chromium/content/renderer/render_frame_impl.h
+++ b/chromium/content/renderer/render_frame_impl.h
@@ -17,7 +17,6 @@
#include <vector>
#include "base/callback.h"
-#include "base/containers/circular_deque.h"
#include "base/containers/id_map.h"
#include "base/files/file_path.h"
#include "base/gtest_prod_util.h"
@@ -40,7 +39,6 @@
#include "content/common/render_accessibility.mojom.h"
#include "content/common/renderer.mojom.h"
#include "content/common/unique_name_helper.h"
-#include "content/common/widget.mojom.h"
#include "content/public/common/browser_controls_state.h"
#include "content/public/common/fullscreen_video_element.mojom.h"
#include "content/public/common/previews_state.h"
@@ -59,7 +57,7 @@
#include "ipc/ipc_message.h"
#include "ipc/ipc_platform_file.h"
#include "media/base/routing_token_callback.h"
-#include "mojo/public/cpp/bindings/associated_binding.h"
+#include "media/base/speech_recognition_client.h"
#include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
@@ -130,7 +128,6 @@ class WebString;
class WebURL;
struct FramePolicy;
struct WebContextMenuData;
-struct WebImeTextSpan;
} // namespace blink
namespace gfx {
@@ -140,9 +137,6 @@ class Range;
namespace media {
class MediaPermission;
-#if !defined(OS_ANDROID)
-class SpeechRecognitionClient;
-#endif
}
namespace service_manager {
@@ -184,7 +178,6 @@ class CONTENT_EXPORT RenderFrameImpl
mojom::FrameBindingsControl,
mojom::MhtmlFileWriter,
public blink::WebLocalFrameClient,
- public blink::WebFrameSerializerClient,
service_manager::mojom::InterfaceProvider {
public:
// Creates a new RenderFrame as the main frame of |render_view|.
@@ -224,7 +217,7 @@ class CONTENT_EXPORT RenderFrameImpl
mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker>
browser_interface_broker,
int previous_routing_id,
- int opener_routing_id,
+ const base::UnguessableToken& opener_frame_token,
int parent_routing_id,
int previous_sibling_routing_id,
const base::UnguessableToken& frame_token,
@@ -310,6 +303,9 @@ class CONTENT_EXPORT RenderFrameImpl
// Returns the RenderWidget associated with this frame.
RenderWidget* GetLocalRootRenderWidget();
+ // Returns the blink::WebFrameWidget attached to the RenderWidget that is
+ // associated with this frame.
+ blink::WebFrameWidget* GetLocalRootWebFrameWidget();
// This method must be called after the WebLocalFrame backing this RenderFrame
// has been created and added to the frame tree. It creates all objects that
@@ -395,21 +391,19 @@ class CONTENT_EXPORT RenderFrameImpl
// Simulates IME events for testing purpose.
void SimulateImeSetComposition(
const base::string16& text,
- const std::vector<blink::WebImeTextSpan>& ime_text_spans,
+ const std::vector<ui::ImeTextSpan>& ime_text_spans,
int selection_start,
int selection_end);
- void SimulateImeCommitText(
- const base::string16& text,
- const std::vector<blink::WebImeTextSpan>& ime_text_spans,
- const gfx::Range& replacement_range);
+ void SimulateImeCommitText(const base::string16& text,
+ const std::vector<ui::ImeTextSpan>& ime_text_spans,
+ const gfx::Range& replacement_range);
// TODO(jam): remove these once the IPC handler moves from RenderView to
// RenderFrame.
- void OnImeSetComposition(
- const base::string16& text,
- const std::vector<blink::WebImeTextSpan>& ime_text_spans,
- int selection_start,
- int selection_end);
+ void OnImeSetComposition(const base::string16& text,
+ const std::vector<ui::ImeTextSpan>& ime_text_spans,
+ int selection_start,
+ int selection_end);
void OnImeCommitText(const base::string16& text,
const gfx::Range& replacement_range,
int relative_cursor_pos);
@@ -487,7 +481,6 @@ class CONTENT_EXPORT RenderFrameImpl
override;
void SetRenderFrameMediaPlaybackOptions(
const RenderFrameMediaPlaybackOptions& opts) override;
- void UpdateAllLifecyclePhasesAndCompositeForTesting() override;
void SetAllowsCrossBrowsingInstanceFrameLookup() override;
gfx::RectF ElementBoundsInWindow(const blink::WebElement& element) override;
void ConvertViewportToWindow(blink::WebRect* rect) override;
@@ -506,13 +499,19 @@ class CONTENT_EXPORT RenderFrameImpl
void BlockRequests() override;
void ResumeBlockedRequests() override;
void CancelBlockedRequests() override;
- void SetLifecycleState(blink::mojom::FrameLifecycleState state) override;
void UpdateBrowserControlsState(BrowserControlsState constraints,
BrowserControlsState current,
bool animate) override;
void SnapshotAccessibilityTree(
uint32_t ax_mode,
SnapshotAccessibilityTreeCallback callback) override;
+ void GetSerializedHtmlWithLocalLinks(
+ const base::flat_map<GURL, base::FilePath>& url_map,
+ const base::flat_map<base::UnguessableToken, base::FilePath>&
+ frame_token_map,
+ bool save_with_empty_url,
+ mojo::PendingRemote<mojom::FrameHTMLSerializerHandler> handler_remote)
+ override;
#if defined(OS_ANDROID)
void ExtractSmartClipData(
@@ -524,13 +523,7 @@ class CONTENT_EXPORT RenderFrameImpl
void AllowBindings(int32_t enabled_bindings_flags) override;
void EnableMojoJsBindings() override;
- // mojom::FrameNavigationControl implementation:
- void ForwardMessageFromHost(
- blink::TransferableMessage message,
- const url::Origin& source_origin,
- const base::Optional<url::Origin>& target_origin) override;
-
- // mojom::FrameNavigationControl implementation:
+ // These mirror mojom::NavigationClient, called by NavigationClient.
void CommitNavigation(
mojom::CommonNavigationParamsPtr common_params,
mojom::CommitNavigationParamsPtr commit_params,
@@ -543,35 +536,11 @@ class CONTENT_EXPORT RenderFrameImpl
subresource_overrides,
blink::mojom::ControllerServiceWorkerInfoPtr
controller_service_worker_info,
- blink::mojom::ServiceWorkerProviderInfoForClientPtr provider_info,
- mojo::PendingRemote<network::mojom::URLLoaderFactory>
- prefetch_loader_factory,
- const base::UnguessableToken& devtools_navigation_token,
- mojom::FrameNavigationControl::CommitNavigationCallback commit_callback)
- override;
-
- // This is the version to be used with PerNavigationMojoInterface enabled.
- // It essentially works the same way, except the navigation callback is
- // the one from NavigationClient mojo interface.
- void CommitPerNavigationMojoInterfaceNavigation(
- mojom::CommonNavigationParamsPtr common_params,
- mojom::CommitNavigationParamsPtr commit_params,
- network::mojom::URLResponseHeadPtr response_head,
- mojo::ScopedDataPipeConsumerHandle response_body,
- network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
- std::unique_ptr<blink::PendingURLLoaderFactoryBundle>
- subresource_loader_factories,
- base::Optional<std::vector<mojom::TransferrableURLLoaderPtr>>
- subresource_overrides,
- blink::mojom::ControllerServiceWorkerInfoPtr
- controller_service_worker_info,
- blink::mojom::ServiceWorkerProviderInfoForClientPtr provider_info,
+ blink::mojom::ServiceWorkerContainerInfoForClientPtr container_info,
mojo::PendingRemote<network::mojom::URLLoaderFactory>
prefetch_loader_factory,
const base::UnguessableToken& devtools_navigation_token,
- mojom::NavigationClient::CommitNavigationCallback
- per_navigation_mojo_interface_callback);
-
+ mojom::NavigationClient::CommitNavigationCallback commit_callback);
void CommitFailedNavigation(
mojom::CommonNavigationParamsPtr common_params,
mojom::CommitNavigationParamsPtr commit_params,
@@ -584,6 +553,7 @@ class CONTENT_EXPORT RenderFrameImpl
mojom::NavigationClient::CommitFailedNavigationCallback
per_navigation_mojo_interface_callback);
+ // mojom::FrameNavigationControl implementation:
void CommitSameDocumentNavigation(
mojom::CommonNavigationParamsPtr common_params,
mojom::CommitNavigationParamsPtr commit_params,
@@ -596,7 +566,6 @@ class CONTENT_EXPORT RenderFrameImpl
mojo::PendingAssociatedRemote<blink::mojom::DevToolsAgentHost> host,
mojo::PendingAssociatedReceiver<blink::mojom::DevToolsAgent> receiver)
override;
-
void JavaScriptExecuteRequest(
const base::string16& javascript,
bool wants_result,
@@ -612,6 +581,10 @@ class CONTENT_EXPORT RenderFrameImpl
bool wants_result,
int32_t world_id,
JavaScriptExecuteRequestInIsolatedWorldCallback callback) override;
+ void ForwardMessageFromHost(
+ blink::TransferableMessage message,
+ const url::Origin& source_origin,
+ const base::Optional<url::Origin>& target_origin) override;
void OnPortalActivated(
const base::UnguessableToken& portal_token,
mojo::PendingAssociatedRemote<blink::mojom::Portal> portal,
@@ -640,8 +613,8 @@ class CONTENT_EXPORT RenderFrameImpl
std::unique_ptr<blink::WebContentSettingsClient>
CreateWorkerContentSettingsClient() override;
#if !defined(OS_ANDROID)
- std::unique_ptr<media::SpeechRecognitionClient>
- CreateSpeechRecognitionClient();
+ std::unique_ptr<media::SpeechRecognitionClient> CreateSpeechRecognitionClient(
+ media::SpeechRecognitionClient::OnReadyCallback callback) override;
#endif
scoped_refptr<blink::WebWorkerFetchContext> CreateWorkerFetchContext()
override;
@@ -673,11 +646,8 @@ class CONTENT_EXPORT RenderFrameImpl
const base::UnguessableToken& portal_token,
const blink::WebElement& portal_element) override;
blink::WebFrame* FindFrame(const blink::WebString& name) override;
- void DidChangeOpener(blink::WebFrame* frame) override;
void FrameDetached(DetachType type) override;
void DidChangeName(const blink::WebString& name) override;
- void DidChangeFramePolicy(blink::WebFrame* child_frame,
- const blink::FramePolicy& frame_policy) override;
void DidSetFramePolicyHeaders(
network::mojom::WebSandboxFlags flags,
const blink::ParsedFeaturePolicy& fp_header,
@@ -719,7 +689,6 @@ class CONTENT_EXPORT RenderFrameImpl
base::UnguessableToken GetDevToolsFrameToken() override;
void AbortClientNavigation() override;
void DidChangeSelection(bool is_empty_selection) override;
- bool HandleCurrentKeyboardEvent() override;
void ShowContextMenu(const blink::WebContextMenuData& data) override;
void FrameRectsChanged(const blink::WebRect& frame_rect) override;
void FocusedElementChanged(const blink::WebElement& element) override;
@@ -771,12 +740,10 @@ class CONTENT_EXPORT RenderFrameImpl
void OnStopLoading() override;
void DraggableRegionsChanged() override;
blink::BrowserInterfaceBrokerProxy* GetBrowserInterfaceBroker() override;
-
- // WebFrameSerializerClient implementation:
- void DidSerializeDataForFrame(
- const blink::WebVector<char>& data,
- blink::WebFrameSerializerClient::FrameSerializationStatus status)
- override;
+ void SubmitThroughputData(ukm::SourceId source_id,
+ int aggregated_percent,
+ int impl_percent,
+ base::Optional<int> main_percent) override;
// Binds to the fullscreen service in the browser.
void BindFullscreen(
@@ -838,12 +805,6 @@ class CONTENT_EXPORT RenderFrameImpl
void NotifyObserversOfFailedProvisionalLoad();
- bool handling_select_range() const { return handling_select_range_; }
-
- void set_is_pasting(bool value) { is_pasting_ = value; }
-
- void set_handling_select_range(bool value) { handling_select_range_ = value; }
-
// Plugin-related functions --------------------------------------------------
#if BUILDFLAG(ENABLE_PLUGINS)
@@ -889,10 +850,6 @@ class CONTENT_EXPORT RenderFrameImpl
void ScrollFocusedEditableElementIntoRect(const gfx::Rect& rect);
void ResetHasScrolledFocusedEditableIntoView();
- // Called to notify a frame that it called |window.focus()| on a different
- // frame.
- void FrameDidCallFocus();
-
// Called when an ongoing renderer-initiated navigation was dropped by the
// browser.
void OnDroppedNavigation();
@@ -922,6 +879,11 @@ class CONTENT_EXPORT RenderFrameImpl
bool IsLocalRoot() const;
const RenderFrameImpl* GetLocalRoot() const;
+ // Gets the unique_name() of the frame being replaced by this frame, when
+ // it is a provisional frame. Invalid to call on frames that are already
+ // attached to the frame tree.
+ const std::string& GetPreviousFrameUniqueName();
+
private:
friend class RenderFrameImplTest;
friend class RenderFrameObserver;
@@ -1039,12 +1001,6 @@ class CONTENT_EXPORT RenderFrameImpl
void OnVisualStateRequest(uint64_t key);
// TODO(https://crbug.com/995428): Deprecated.
void OnReload();
- void OnUpdateOpener(int opener_routing_id);
- void OnGetSavableResourceLinks();
- void OnGetSerializedHtmlWithLocalLinks(
- const std::map<GURL, base::FilePath>& url_to_local_path,
- const std::map<int, base::FilePath>& frame_routing_id_to_local_path,
- bool save_with_empty_url);
void OnSuppressFurtherDialogs();
void OnMixedContentFound(const FrameMsg_MixedContentFound_Params& params);
@@ -1123,7 +1079,7 @@ class CONTENT_EXPORT RenderFrameImpl
subresource_overrides,
blink::mojom::ControllerServiceWorkerInfoPtr
controller_service_worker_info,
- blink::mojom::ServiceWorkerProviderInfoForClientPtr provider_info,
+ blink::mojom::ServiceWorkerContainerInfoForClientPtr container_info,
mojo::PendingRemote<network::mojom::URLLoaderFactory>
prefetch_loader_factory,
std::unique_ptr<DocumentState> document_state,
@@ -1170,8 +1126,6 @@ class CONTENT_EXPORT RenderFrameImpl
// call |callback| before returning.
void RequestOverlayRoutingToken(media::RoutingTokenCallback callback);
- void BindWidget(mojo::PendingReceiver<mojom::Widget> receiver);
-
void ShowDeferredContextMenu(const UntrustworthyContextMenuParams& params);
// Build DidCommitProvisionalLoad_Params based on the frame internal state.
@@ -1189,8 +1143,7 @@ class CONTENT_EXPORT RenderFrameImpl
blink::WebHistoryCommitType commit_type);
// Notify render_view_ observers that a commit happened.
- void NotifyObserversOfNavigationCommit(bool is_same_document,
- ui::PageTransition transition);
+ void NotifyObserversOfNavigationCommit(ui::PageTransition transition);
// Updates the internal state following a navigation commit. This should be
// called before notifying the FrameHost of the commit.
@@ -1263,35 +1216,11 @@ class CONTENT_EXPORT RenderFrameImpl
blink::WebHistoryItem* item_for_history_navigation,
blink::WebFrameLoadType* load_type);
- // These functions avoid duplication between Commit*Navigation and
- // Commit*PerNavigationMojoInterfaceNavigation functions.
- void CommitNavigationInternal(
- mojom::CommonNavigationParamsPtr common_params,
- mojom::CommitNavigationParamsPtr commit_params,
- network::mojom::URLResponseHeadPtr response_head,
- mojo::ScopedDataPipeConsumerHandle response_body,
- network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints,
- std::unique_ptr<blink::PendingURLLoaderFactoryBundle>
- subresource_loader_factories,
- base::Optional<std::vector<mojom::TransferrableURLLoaderPtr>>
- subresource_overrides,
- blink::mojom::ControllerServiceWorkerInfoPtr
- controller_service_worker_info,
- blink::mojom::ServiceWorkerProviderInfoForClientPtr provider_info,
- mojo::PendingRemote<network::mojom::URLLoaderFactory>
- prefetch_loader_factory,
- const base::UnguessableToken& devtools_navigation_token,
- mojom::FrameNavigationControl::CommitNavigationCallback callback,
- mojom::NavigationClient::CommitNavigationCallback
- per_navigation_mojo_interface_callback);
-
// Ignores the navigation commit and stop its processing in the RenderFrame.
// This will drop the NavigationRequest in the RenderFrameHost.
// Note: This is only meant to be used before building the DocumentState.
// Commit abort and navigation end is handled by it afterwards.
- void AbortCommitNavigation(
- mojom::FrameNavigationControl::CommitNavigationCallback callback,
- blink::mojom::CommitResult reason);
+ void AbortCommitNavigation();
// Implements AddMessageToConsole().
void AddMessageToConsoleImpl(blink::mojom::ConsoleMessageLevel level,
@@ -1418,9 +1347,6 @@ class CONTENT_EXPORT RenderFrameImpl
// Range over the document corresponding to the actual selected text (which
// could correspond to a substring of |selection_text_|; see above).
gfx::Range selection_range_;
- // Used to inform didChangeSelection() when it is called in the context
- // of handling a FrameInputHandler::SelectRange IPC.
- bool handling_select_range_;
// Implements getUserMedia() and related functionality.
std::unique_ptr<blink::WebMediaStreamDeviceObserver>
@@ -1441,9 +1367,6 @@ class CONTENT_EXPORT RenderFrameImpl
// Valid during the entire life time of the RenderFrame.
std::unique_ptr<RenderAccessibilityManager> render_accessibility_manager_;
- // Whether or not this RenderFrame is currently pasting.
- bool is_pasting_;
-
std::unique_ptr<FrameBlameContext> blame_context_;
// Plugins -------------------------------------------------------------------