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() {
FrameNavigationState::~FrameNavigationState() {}
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);
}
bool FrameNavigationState::IsValidUrl(const GURL& url) const {
// static
bool FrameNavigationState::IsValidUrl(const GURL& url) {
for (unsigned i = 0; i < arraysize(kValidSchemes); ++i) {
if (url.scheme() == kValidSchemes[i])
return true;
......@@ -60,6 +51,16 @@ bool FrameNavigationState::IsValidUrl(const GURL& url) const {
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(
content::RenderFrameHost* frame_host,
const GURL& url,
......
......@@ -28,6 +28,9 @@ class 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.
const_iterator begin() const { return frame_hosts_.begin(); }
const_iterator end() const { return frame_hosts_.end(); }
......@@ -35,10 +38,6 @@ class FrameNavigationState {
// True if navigation events for the given frame can be sent.
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|.
void StartTrackingNavigation(content::RenderFrameHost* frame_host,
const GURL& url,
......
......@@ -122,11 +122,8 @@ void WebNavigationEventRouter::TabReplacedAt(
DCHECK(GetViewType(old_contents) != VIEW_TYPE_TAB_CONTENTS);
return;
}
const FrameNavigationState& frame_navigation_state =
tab_observer->frame_navigation_state();
if (!frame_navigation_state.IsValidUrl(old_contents->GetURL()) ||
!frame_navigation_state.IsValidUrl(new_contents->GetURL()))
if (!FrameNavigationState::IsValidUrl(old_contents->GetURL()) ||
!FrameNavigationState::IsValidUrl(new_contents->GetURL()))
return;
helpers::DispatchOnTabReplaced(old_contents, profile_, new_contents);
......@@ -322,31 +319,21 @@ void WebNavigationTabObserver::DidCommitProvisionalLoadForFrame(
if (!navigation_state_.CanSendEvents(render_frame_host))
return;
std::string event_name;
if (is_reference_fragment_navigation) {
helpers::DispatchOnCommitted(
web_navigation::OnReferenceFragmentUpdated::kEventName,
web_contents(),
render_frame_host,
navigation_state_.GetUrl(render_frame_host),
transition_type);
event_name = web_navigation::OnReferenceFragmentUpdated::kEventName;
} else if (is_history_state_modification) {
helpers::DispatchOnCommitted(
web_navigation::OnHistoryStateUpdated::kEventName,
web_contents(),
render_frame_host,
navigation_state_.GetUrl(render_frame_host),
transition_type);
event_name = web_navigation::OnHistoryStateUpdated::kEventName;
} else {
if (navigation_state_.GetIsServerRedirected(render_frame_host)) {
transition_type = ui::PageTransitionFromInt(
transition_type | ui::PAGE_TRANSITION_SERVER_REDIRECT);
}
helpers::DispatchOnCommitted(web_navigation::OnCommitted::kEventName,
web_contents(),
render_frame_host,
navigation_state_.GetUrl(render_frame_host),
transition_type);
event_name = web_navigation::OnCommitted::kEventName;
}
helpers::DispatchOnCommitted(event_name, web_contents(), render_frame_host,
navigation_state_.GetUrl(render_frame_host),
transition_type);
}
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