Commit d38b93f7 authored by deepak.m1's avatar deepak.m1 Committed by Commit bot

Code Refactor in web_navigation and making IsValidUrl() function static in frame_navigation_state.

BUG=487618

Review URL: https://codereview.chromium.org/1140023002

Cr-Commit-Position: refs/heads/master@{#330092}
parent a9605768
...@@ -37,17 +37,8 @@ FrameNavigationState::FrameNavigationState() { ...@@ -37,17 +37,8 @@ FrameNavigationState::FrameNavigationState() {
FrameNavigationState::~FrameNavigationState() {} FrameNavigationState::~FrameNavigationState() {}
bool FrameNavigationState::CanSendEvents( // static
content::RenderFrameHost* frame_host) const { bool FrameNavigationState::IsValidUrl(const GURL& url) {
FrameHostToStateMap::const_iterator it =
frame_host_state_map_.find(frame_host);
if (it == frame_host_state_map_.end() || it->second.error_occurred) {
return false;
}
return IsValidUrl(it->second.url);
}
bool FrameNavigationState::IsValidUrl(const GURL& url) const {
for (unsigned i = 0; i < arraysize(kValidSchemes); ++i) { for (unsigned i = 0; i < arraysize(kValidSchemes); ++i) {
if (url.scheme() == kValidSchemes[i]) if (url.scheme() == kValidSchemes[i])
return true; return true;
...@@ -60,6 +51,16 @@ bool FrameNavigationState::IsValidUrl(const GURL& url) const { ...@@ -60,6 +51,16 @@ bool FrameNavigationState::IsValidUrl(const GURL& url) const {
return allow_extension_scheme_ && url.scheme() == kExtensionScheme; return allow_extension_scheme_ && url.scheme() == kExtensionScheme;
} }
bool FrameNavigationState::CanSendEvents(
content::RenderFrameHost* frame_host) const {
FrameHostToStateMap::const_iterator it =
frame_host_state_map_.find(frame_host);
if (it == frame_host_state_map_.end() || it->second.error_occurred) {
return false;
}
return IsValidUrl(it->second.url);
}
void FrameNavigationState::StartTrackingNavigation( void FrameNavigationState::StartTrackingNavigation(
content::RenderFrameHost* frame_host, content::RenderFrameHost* frame_host,
const GURL& url, const GURL& url,
......
...@@ -28,6 +28,9 @@ class FrameNavigationState { ...@@ -28,6 +28,9 @@ class FrameNavigationState {
FrameNavigationState(); FrameNavigationState();
~FrameNavigationState(); ~FrameNavigationState();
// True if in general webNavigation events may be sent for the given URL.
static bool IsValidUrl(const GURL& url);
// Use these to iterate over all frame hosts known by this object. // Use these to iterate over all frame hosts known by this object.
const_iterator begin() const { return frame_hosts_.begin(); } const_iterator begin() const { return frame_hosts_.begin(); }
const_iterator end() const { return frame_hosts_.end(); } const_iterator end() const { return frame_hosts_.end(); }
...@@ -35,10 +38,6 @@ class FrameNavigationState { ...@@ -35,10 +38,6 @@ class FrameNavigationState {
// True if navigation events for the given frame can be sent. // True if navigation events for the given frame can be sent.
bool CanSendEvents(content::RenderFrameHost* frame_host) const; bool CanSendEvents(content::RenderFrameHost* frame_host) const;
// TODO(dcheng): This should be static.
// True if in general webNavigation events may be sent for the given URL.
bool IsValidUrl(const GURL& url) const;
// Starts to track a navigation in |frame_host| to |url|. // Starts to track a navigation in |frame_host| to |url|.
void StartTrackingNavigation(content::RenderFrameHost* frame_host, void StartTrackingNavigation(content::RenderFrameHost* frame_host,
const GURL& url, const GURL& url,
......
...@@ -122,11 +122,8 @@ void WebNavigationEventRouter::TabReplacedAt( ...@@ -122,11 +122,8 @@ void WebNavigationEventRouter::TabReplacedAt(
DCHECK(GetViewType(old_contents) != VIEW_TYPE_TAB_CONTENTS); DCHECK(GetViewType(old_contents) != VIEW_TYPE_TAB_CONTENTS);
return; return;
} }
const FrameNavigationState& frame_navigation_state = if (!FrameNavigationState::IsValidUrl(old_contents->GetURL()) ||
tab_observer->frame_navigation_state(); !FrameNavigationState::IsValidUrl(new_contents->GetURL()))
if (!frame_navigation_state.IsValidUrl(old_contents->GetURL()) ||
!frame_navigation_state.IsValidUrl(new_contents->GetURL()))
return; return;
helpers::DispatchOnTabReplaced(old_contents, profile_, new_contents); helpers::DispatchOnTabReplaced(old_contents, profile_, new_contents);
...@@ -322,31 +319,21 @@ void WebNavigationTabObserver::DidCommitProvisionalLoadForFrame( ...@@ -322,31 +319,21 @@ void WebNavigationTabObserver::DidCommitProvisionalLoadForFrame(
if (!navigation_state_.CanSendEvents(render_frame_host)) if (!navigation_state_.CanSendEvents(render_frame_host))
return; return;
std::string event_name;
if (is_reference_fragment_navigation) { if (is_reference_fragment_navigation) {
helpers::DispatchOnCommitted( event_name = web_navigation::OnReferenceFragmentUpdated::kEventName;
web_navigation::OnReferenceFragmentUpdated::kEventName,
web_contents(),
render_frame_host,
navigation_state_.GetUrl(render_frame_host),
transition_type);
} else if (is_history_state_modification) { } else if (is_history_state_modification) {
helpers::DispatchOnCommitted( event_name = web_navigation::OnHistoryStateUpdated::kEventName;
web_navigation::OnHistoryStateUpdated::kEventName,
web_contents(),
render_frame_host,
navigation_state_.GetUrl(render_frame_host),
transition_type);
} else { } else {
if (navigation_state_.GetIsServerRedirected(render_frame_host)) { if (navigation_state_.GetIsServerRedirected(render_frame_host)) {
transition_type = ui::PageTransitionFromInt( transition_type = ui::PageTransitionFromInt(
transition_type | ui::PAGE_TRANSITION_SERVER_REDIRECT); transition_type | ui::PAGE_TRANSITION_SERVER_REDIRECT);
} }
helpers::DispatchOnCommitted(web_navigation::OnCommitted::kEventName, event_name = web_navigation::OnCommitted::kEventName;
web_contents(), }
render_frame_host, helpers::DispatchOnCommitted(event_name, web_contents(), render_frame_host,
navigation_state_.GetUrl(render_frame_host), navigation_state_.GetUrl(render_frame_host),
transition_type); transition_type);
}
} }
void WebNavigationTabObserver::DidFailProvisionalLoad( void WebNavigationTabObserver::DidFailProvisionalLoad(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment