summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormorrita <morrita@chromium.org>2014-10-31 11:26:59 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-31 18:27:24 +0000
commitffb8261db9491e5d1ce9b9eb76941f99f7df7011 (patch)
treebba5750b966f904d1b4cb904e88243e2e782e923
parent892dfc786a995249bf695d69f1309db60026dbfd (diff)
downloadchromium_src-ffb8261db9491e5d1ce9b9eb76941f99f7df7011.zip
chromium_src-ffb8261db9491e5d1ce9b9eb76941f99f7df7011.tar.gz
chromium_src-ffb8261db9491e5d1ce9b9eb76941f99f7df7011.tar.bz2
Revert of Navigation transitions (web to native app): Pass data after starting provisional load (Chrome side) (patchset #7 id:120001 of https://codereview.chromium.org/652953008/)
Reason for revert: Crashing a LayoutTest http://test-results.appspot.com/dashboards/flakiness_dashboard.html#master=ChromiumWebkit&tests=fast/html/navigation-transition.html Hitting an assertion: 10:15:12.016 3607 [10283:10283:1031/101511:5678803780814:FATAL:transition_request_manager.cc(161)] Check failed: ::content::BrowserThread::CurrentlyOn(BrowserThread::IO). Must be called on Chrome_IOThread; actually called on CrBrowserMain. 10:15:12.016 3607 #0 0x7f66666664ce base::debug::StackTrace::StackTrace() 10:15:12.016 3607 #1 0x7f6666700bf5 logging::LogMessage::~LogMessage() 10:15:12.016 3607 #2 0x7f66612dcafa content::TransitionRequestManager::GetPendingTransitionRequest() 10:15:12.016 3607 #3 0x7f6660bccdb1 content::NavigatorImpl::DidStartProvisionalLoad() 10:15:12.016 3607 #4 0x7f6660bdb821 content::RenderFrameHostImpl::OnDidStartProvisionalLoadForFrame() 10:15:12.016 3607 #5 0x7f6660bf3554 DispatchToMethod<>() 10:15:12.016 3607 #6 0x7f6660be38b7 FrameHostMsg_DidStartProvisionalLoadForFrame::Dispatch<>() 10:15:12.016 3607 #7 0x7f6660bda57e content::RenderFrameHostImpl::OnMessageReceived() 10:15:12.016 3607 #8 0x7f666103ad0e content::RenderProcessHostImpl::OnMessageReceived() 10:15:12.016 3607 #9 0x7f666103b11f content::RenderProcessHostImpl::OnMessageReceived() 10:15:12.016 3607 #10 0x7f6664fe5e9d IPC::ChannelProxy::Context::OnDispatchMessage() 10:15:12.016 3607 #11 0x7f6664feea5a base::internal::RunnableAdapter<>::Run() 10:15:12.016 3607 #12 0x7f6664fee9b1 base::internal::InvokeHelper<>::MakeItSo() 10:15:12.016 3607 #13 0x7f6664fee94c base::internal::Invoker<>::Run() 10:15:12.016 3607 #14 0x7f666664eb3e base::Callback<>::Run() 10:15:12.016 3607 #15 0x7f666666cb89 base::debug::TaskAnnotator::RunTask() 10:15:12.016 3607 #16 0x7f6666729968 base::MessageLoop::RunTask() 10:15:12.016 3607 #17 0x7f6666729acb base::MessageLoop::DeferOrRunPendingTask() 10:15:12.016 3607 #18 0x7f6666729d05 base::MessageLoop::DoWork() 10:15:12.016 3607 #19 0x7f66666227bc base::MessagePumpGlib::HandleDispatch() 10:15:12.016 3607 #20 0x7f6666622fd1 base::(anonymous namespace)::WorkSourceDispatch() 10:15:12.016 3607 #21 0x7f6658588d13 g_main_context_dispatch 10:15:12.016 3607 #22 0x7f6658589060 <unknown> 10:15:12.016 3607 #23 0x7f6658589124 g_main_context_iteration 10:15:12.016 3607 #24 0x7f66666228c5 base::MessagePumpGlib::Run() 10:15:12.016 3607 #25 0x7f6666729432 base::MessageLoop::RunHandler() 10:15:12.016 3607 #26 0x7f66667920d4 base::RunLoop::Run() 10:15:12.016 3607 #27 0x7f66609ca164 content::BrowserMainLoop::MainMessageLoopRun() 10:15:12.016 3607 #28 0x7f66609c9fc1 content::BrowserMainLoop::RunMainMessageLoopParts() 10:15:12.016 3607 #29 0x7f66609d3075 content::BrowserMainRunnerImpl::Run() 10:15:12.016 3607 #30 0x000000452ef4 (anonymous namespace)::RunOneTest() 10:15:12.016 3607 #31 0x000000452b53 (anonymous namespace)::RunTests() 10:15:12.016 3607 #32 0x0000004529af LayoutTestBrowserMain() 10:15:12.016 3607 #33 0x00000044fcda content::ShellMainDelegate::RunProcess() 10:15:12.017 3607 #34 0x7f6660849f01 content::RunNamedProcessTypeMain() 10:15:12.017 3607 #35 0x7f666084e232 content::ContentMainRunnerImpl::Run() 10:15:12.017 3607 #36 0x7f66608493f5 content::ContentMain() 10:15:12.017 3607 #37 0x00000044ee5c main 10:15:12.017 3607 #38 0x7f665785676d __libc_start_main 10:15:12.017 3607 #39 0x00000044ed49 <unknown> Original issue's description: > Navigation transitions (web to native app): Pass data after starting provisional load (Chrome side) > > Pass transitional elements' CSS selector, names and rects to TransitionPageHelper after starting provisional load. Those data are needed when overriding the URL navigation to jump to a native Android app. > > The is the Chrome side of the CL. The Clank side is here: https://chrome-internal-review.googlesource.com/#/c/180668/ > > BUG=370696 > > Committed: https://crrev.com/5b846f579d3dd1a0f4d0b8c26ff274117bfba0bc > Cr-Commit-Position: refs/heads/master@{#302279} TBR=nasko@chromium.org,sievers@chromium.org,oysteine@chromium.org,zhenw@chromium.org NOTREECHECKS=true NOTRY=true BUG=370696 Review URL: https://codereview.chromium.org/689123003 Cr-Commit-Position: refs/heads/master@{#302284}
-rw-r--r--content/browser/frame_host/navigator_delegate.h4
-rw-r--r--content/browser/frame_host/navigator_impl.cc12
-rw-r--r--content/browser/loader/cross_site_resource_handler.cc2
-rw-r--r--content/browser/renderer_host/render_message_filter.cc5
-rw-r--r--content/browser/transition_browsertest.cc2
-rw-r--r--content/browser/transition_request_manager.cc25
-rw-r--r--content/browser/transition_request_manager.h29
-rw-r--r--content/browser/web_contents/web_contents_android.cc20
-rw-r--r--content/browser/web_contents/web_contents_android.h4
-rw-r--r--content/browser/web_contents/web_contents_impl.cc5
-rw-r--r--content/browser/web_contents/web_contents_impl.h3
-rw-r--r--content/common/frame_messages.h23
-rw-r--r--content/content_common.gypi1
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java13
-rw-r--r--content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java14
-rw-r--r--content/public/android/javatests/src/org/chromium/content/browser/TransitionTest.java7
-rw-r--r--content/public/common/transition_element.h23
-rw-r--r--content/renderer/render_frame_impl.cc7
18 files changed, 60 insertions, 139 deletions
diff --git a/content/browser/frame_host/navigator_delegate.h b/content/browser/frame_host/navigator_delegate.h
index 24ed5b3..80ed213 100644
--- a/content/browser/frame_host/navigator_delegate.h
+++ b/content/browser/frame_host/navigator_delegate.h
@@ -6,7 +6,6 @@
#define CONTENT_BROWSER_FRAME_HOST_NAVIGATOR_DELEGATE_H_
#include "base/strings/string16.h"
-#include "content/browser/transition_request_manager.h"
#include "content/public/browser/invalidate_type.h"
#include "content/public/browser/navigation_controller.h"
#include "ui/base/page_transition_types.h"
@@ -36,8 +35,7 @@ class CONTENT_EXPORT NavigatorDelegate {
// The |render_frame_host| started a transition-flagged navigation.
virtual void DidStartNavigationTransition(
- RenderFrameHostImpl* render_frame_host,
- const TransitionLayerData& transition_data) {}
+ RenderFrameHostImpl* render_frame_host) {}
// A provisional load in |render_frame_host| failed.
virtual void DidFailProvisionalLoadWithError(
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc
index 127301c..bae6224 100644
--- a/content/browser/frame_host/navigator_impl.cc
+++ b/content/browser/frame_host/navigator_impl.cc
@@ -255,16 +255,8 @@ void NavigatorImpl::DidStartProvisionalLoad(
delegate_->NotifyChangedNavigationState(content::INVALIDATE_TYPE_URL);
}
- if (delegate_ && is_transition_navigation) {
- TransitionLayerData transition_data;
- TransitionRequestManager::GetInstance()->GetPendingTransitionRequest(
- render_frame_host->GetProcess()->GetID(),
- render_frame_host->GetRoutingID(),
- validated_url,
- &transition_data);
- delegate_->DidStartNavigationTransition(render_frame_host,
- transition_data);
- }
+ if (delegate_ && is_transition_navigation)
+ delegate_->DidStartNavigationTransition(render_frame_host);
}
if (delegate_) {
diff --git a/content/browser/loader/cross_site_resource_handler.cc b/content/browser/loader/cross_site_resource_handler.cc
index 2ec5ee5..596cf62 100644
--- a/content/browser/loader/cross_site_resource_handler.cc
+++ b/content/browser/loader/cross_site_resource_handler.cc
@@ -150,7 +150,7 @@ bool CrossSiteResourceHandler::OnResponseStarted(
TransitionLayerData transition_data;
bool is_navigation_transition =
- TransitionRequestManager::GetInstance()->GetPendingTransitionRequest(
+ TransitionRequestManager::GetInstance()->HasPendingTransitionRequest(
info->GetChildID(), info->GetRenderFrameID(), request()->url(),
&transition_data);
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
index 86960ce..1c982f0 100644
--- a/content/browser/renderer_host/render_message_filter.cc
+++ b/content/browser/renderer_host/render_message_filter.cc
@@ -1227,15 +1227,14 @@ void RenderMessageFilter::OnWebAudioMediaCodec(
void RenderMessageFilter::OnAddNavigationTransitionData(
FrameHostMsg_AddNavigationTransitionData_Params params) {
- if (params.elements.size() > TransitionRequestManager::kMaxNumOfElements)
- return;
TransitionRequestManager::GetInstance()->AddPendingTransitionRequestData(
render_process_id_,
params.render_frame_id,
params.allowed_destination_host_pattern,
params.selector,
params.markup,
- params.elements);
+ params.names,
+ params.rects);
}
void RenderMessageFilter::OnAllocateGpuMemoryBuffer(
diff --git a/content/browser/transition_browsertest.cc b/content/browser/transition_browsertest.cc
index 1fba073..147e771 100644
--- a/content/browser/transition_browsertest.cc
+++ b/content/browser/transition_browsertest.cc
@@ -86,7 +86,7 @@ class TransitionBrowserTestObserver
ResourceRequestInfoImpl::ForRequest(request_);
TransitionLayerData transition_data;
did_clear_data_ = !TransitionRequestManager::GetInstance(
- )->GetPendingTransitionRequest(info->GetChildID(),
+ )->HasPendingTransitionRequest(info->GetChildID(),
info->GetRenderFrameID(),
request_->url(),
&transition_data);
diff --git a/content/browser/transition_request_manager.cc b/content/browser/transition_request_manager.cc
index e3f4317..b863991 100644
--- a/content/browser/transition_request_manager.cc
+++ b/content/browser/transition_request_manager.cc
@@ -86,11 +86,13 @@ TransitionRequestManager::TransitionRequestData::AllowedEntry::AllowedEntry(
const std::string& allowed_destination_host_pattern,
const std::string& css_selector,
const std::string& markup,
- const std::vector<TransitionElement>& elements)
+ const std::vector<std::string>& names,
+ const std::vector<gfx::Rect>& rects)
: allowed_destination_host_pattern(allowed_destination_host_pattern),
css_selector(css_selector),
markup(markup),
- elements(elements) {
+ names(names),
+ rects(rects) {
}
TransitionRequestManager::TransitionRequestData::AllowedEntry::~AllowedEntry() {
@@ -127,11 +129,13 @@ void TransitionRequestManager::TransitionRequestData::AddEntry(
const std::string& allowed_destination_host_pattern,
const std::string& css_selector,
const std::string& markup,
- const std::vector<TransitionElement>& elements) {
+ const std::vector<std::string>& names,
+ const std::vector<gfx::Rect>& rects) {
allowed_entries_.push_back(AllowedEntry(allowed_destination_host_pattern,
css_selector,
markup,
- elements));
+ names,
+ rects));
}
bool TransitionRequestManager::TransitionRequestData::FindEntry(
@@ -149,11 +153,12 @@ bool TransitionRequestManager::TransitionRequestData::FindEntry(
const AllowedEntry& allowed_entry = allowed_entries_[0];
transition_data->markup = allowed_entry.markup;
transition_data->css_selector = allowed_entry.css_selector;
- transition_data->elements = allowed_entry.elements;
+ transition_data->names = allowed_entry.names;
+ transition_data->rects = allowed_entry.rects;
return true;
}
-bool TransitionRequestManager::GetPendingTransitionRequest(
+bool TransitionRequestManager::HasPendingTransitionRequest(
int render_process_id,
int render_frame_id,
const GURL& request_url,
@@ -173,12 +178,13 @@ void TransitionRequestManager::AddPendingTransitionRequestData(
const std::string& allowed_destination_host_pattern,
const std::string& css_selector,
const std::string& markup,
- const std::vector<TransitionElement>& elements) {
+ const std::vector<std::string>& names,
+ const std::vector<gfx::Rect>& rects) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
std::pair<int, int> key(render_process_id, render_frame_id);
pending_transition_frames_[key].AddEntry(
- allowed_destination_host_pattern, css_selector, markup, elements);
+ allowed_destination_host_pattern, css_selector, markup, names, rects);
}
void TransitionRequestManager::AddPendingTransitionRequestDataForTesting(
@@ -191,7 +197,8 @@ void TransitionRequestManager::AddPendingTransitionRequestDataForTesting(
"*", /* allowed_destination_host_pattern */
"", /* css_selector */
"", /* markup */
- std::vector<TransitionElement>()); /* elements */
+ std::vector<std::string>(), /* names */
+ std::vector<gfx::Rect>()); /* rects */
}
void TransitionRequestManager::ClearPendingTransitionRequestData(
diff --git a/content/browser/transition_request_manager.h b/content/browser/transition_request_manager.h
index 65b5792..3db4d87 100644
--- a/content/browser/transition_request_manager.h
+++ b/content/browser/transition_request_manager.h
@@ -13,7 +13,6 @@
#include "base/basictypes.h"
#include "base/memory/ref_counted.h"
#include "content/common/content_export.h"
-#include "content/public/common/transition_element.h"
#include "ui/gfx/geometry/rect.h"
#include "url/gurl.h"
@@ -34,7 +33,8 @@ struct TransitionLayerData {
std::string markup;
std::string css_selector;
- std::vector<TransitionElement> elements;
+ std::vector<std::string> names;
+ std::vector<gfx::Rect> rects;
scoped_refptr<net::HttpResponseHeaders> response_headers;
GURL request_url;
};
@@ -57,11 +57,10 @@ class TransitionRequestManager {
std::vector<GURL>& entering_stylesheets,
const GURL& resolve_address);
- // Get pending transition request data from RenderFrameHost specified by the
- // given IDs and return true if the data exists. For web to web transition, we
- // will have to delay the response until the embedder resumes the request if
- // the data exists.
- CONTENT_EXPORT bool GetPendingTransitionRequest(
+ // Returns whether the RenderFrameHost specified by the given IDs currently
+ // has any pending transition request data. If so, we will have to delay the
+ // response until the embedder resumes the request.
+ CONTENT_EXPORT bool HasPendingTransitionRequest(
int render_process_id,
int render_frame_id,
const GURL& request_url,
@@ -75,7 +74,8 @@ class TransitionRequestManager {
const std::string& allowed_destination_host_pattern,
const std::string& css_selector,
const std::string& markup,
- const std::vector<TransitionElement>& elements);
+ const std::vector<std::string>& names,
+ const std::vector<gfx::Rect>& rects);
CONTENT_EXPORT void AddPendingTransitionRequestDataForTesting(
int render_process_id,
int render_frame_id);
@@ -83,10 +83,6 @@ class TransitionRequestManager {
CONTENT_EXPORT void ClearPendingTransitionRequestData(int render_process_id,
int render_frame_id);
- // The maximum number of elements is meant to avoid passing arbitrarily large
- // amount of objects across the IPC boundary.
- static const int kMaxNumOfElements = 1024;
-
private:
class TransitionRequestData {
public:
@@ -95,7 +91,8 @@ class TransitionRequestManager {
void AddEntry(const std::string& allowed_destination_host_pattern,
const std::string& selector,
const std::string& markup,
- const std::vector<TransitionElement>& elements);
+ const std::vector<std::string>& names,
+ const std::vector<gfx::Rect>& rects);
bool FindEntry(const GURL& request_url,
TransitionLayerData* transition_data);
@@ -107,12 +104,14 @@ class TransitionRequestManager {
std::string allowed_destination_host_pattern;
std::string css_selector;
std::string markup;
- std::vector<TransitionElement> elements;
+ std::vector<std::string> names;
+ std::vector<gfx::Rect> rects;
AllowedEntry(const std::string& allowed_destination_host_pattern,
const std::string& css_selector,
const std::string& markup,
- const std::vector<TransitionElement>& elements);
+ const std::vector<std::string>& names,
+ const std::vector<gfx::Rect>& rects);
~AllowedEntry();
};
std::vector<AllowedEntry> allowed_entries_;
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
index 52bca52..85490c1 100644
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
@@ -338,26 +338,10 @@ void WebContentsAndroid::DidDeferAfterResponseStarted(
}
}
-void WebContentsAndroid::DidStartNavigationTransitionForFrame(
- int64 frame_id,
- const TransitionLayerData& transition_data) {
+void WebContentsAndroid::DidStartNavigationTransitionForFrame(int64 frame_id) {
JNIEnv* env = AttachCurrentThread();
-
- ScopedJavaLocalRef<jstring> jstring_css_selector(
- ConvertUTF8ToJavaString(env, transition_data.css_selector));
-
Java_WebContentsImpl_didStartNavigationTransitionForFrame(
- env, obj_.obj(), frame_id, jstring_css_selector.obj());
-
- std::vector<TransitionElement>::const_iterator it =
- transition_data.elements.begin();
- for (; it != transition_data.elements.end(); ++it) {
- ScopedJavaLocalRef<jstring> jstring_name(ConvertUTF8ToJavaString(env,
- it->name));
- Java_WebContentsImpl_addNavigationTransitionElements(
- env, obj_.obj(), jstring_name.obj(),
- it->rect.x(), it->rect.y(), it->rect.width(), it->rect.height());
- }
+ env, obj_.obj(), frame_id);
}
void WebContentsAndroid::EvaluateJavaScript(JNIEnv* env,
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
index 4928e8e..4b79231 100644
--- a/content/browser/web_contents/web_contents_android.h
+++ b/content/browser/web_contents/web_contents_android.h
@@ -65,9 +65,7 @@ class CONTENT_EXPORT WebContentsAndroid
bool WillHandleDeferAfterResponseStarted();
// This method is invoked when a navigation transition has started.
- void DidStartNavigationTransitionForFrame(
- int64 frame_id,
- const TransitionLayerData& transition_data);
+ void DidStartNavigationTransitionForFrame(int64 frame_id);
void OnHide(JNIEnv* env, jobject obj);
void OnShow(JNIEnv* env, jobject obj);
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 6ea767f..c6baca6 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -2456,12 +2456,11 @@ void WebContentsImpl::DidStartProvisionalLoad(
}
void WebContentsImpl::DidStartNavigationTransition(
- RenderFrameHostImpl* render_frame_host,
- const TransitionLayerData& transition_data) {
+ RenderFrameHostImpl* render_frame_host) {
#if defined(OS_ANDROID)
int render_frame_id = render_frame_host->GetRoutingID();
GetWebContentsAndroid()->DidStartNavigationTransitionForFrame(
- render_frame_id, transition_data);
+ render_frame_id);
#endif
}
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index edf2a13..07142af 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -481,8 +481,7 @@ class CONTENT_EXPORT WebContentsImpl
bool is_error_page,
bool is_iframe_srcdoc) override;
void DidStartNavigationTransition(
- RenderFrameHostImpl* render_frame_host,
- const TransitionLayerData& transition_data) override;
+ RenderFrameHostImpl* render_frame_host) override;
void DidFailProvisionalLoadWithError(
RenderFrameHostImpl* render_frame_host,
const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params)
diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h
index 7532858..6c0a1dfe 100644
--- a/content/common/frame_messages.h
+++ b/content/common/frame_messages.h
@@ -19,7 +19,6 @@
#include "content/public/common/javascript_message_type.h"
#include "content/public/common/page_state.h"
#include "content/public/common/resource_response.h"
-#include "content/public/common/transition_element.h"
#include "ipc/ipc_message_macros.h"
#include "ui/gfx/ipc/gfx_param_traits.h"
#include "url/gurl.h"
@@ -90,19 +89,6 @@ IPC_STRUCT_TRAITS_BEGIN(content::CustomContextMenuContext)
IPC_STRUCT_TRAITS_MEMBER(link_followed)
IPC_STRUCT_TRAITS_END()
-IPC_STRUCT_TRAITS_BEGIN(content::TransitionElement)
- IPC_STRUCT_TRAITS_MEMBER(name)
- IPC_STRUCT_TRAITS_MEMBER(rect)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_BEGIN(FrameHostMsg_AddNavigationTransitionData_Params)
- IPC_STRUCT_MEMBER(int, render_frame_id)
- IPC_STRUCT_MEMBER(std::string, allowed_destination_host_pattern)
- IPC_STRUCT_MEMBER(std::string, selector)
- IPC_STRUCT_MEMBER(std::string, markup)
- IPC_STRUCT_MEMBER(std::vector<content::TransitionElement>, elements)
-IPC_STRUCT_END()
-
IPC_STRUCT_BEGIN(FrameHostMsg_DidFailProvisionalLoadWithError_Params)
// Error code as reported in the DidFailProvisionalLoad callback.
IPC_STRUCT_MEMBER(int, error_code)
@@ -276,6 +262,15 @@ IPC_STRUCT_BEGIN(FrameMsg_Navigate_Params)
IPC_STRUCT_MEMBER(std::string, frame_to_navigate)
IPC_STRUCT_END()
+IPC_STRUCT_BEGIN(FrameHostMsg_AddNavigationTransitionData_Params)
+ IPC_STRUCT_MEMBER(int, render_frame_id)
+ IPC_STRUCT_MEMBER(std::string, allowed_destination_host_pattern)
+ IPC_STRUCT_MEMBER(std::string, selector)
+ IPC_STRUCT_MEMBER(std::string, markup)
+ IPC_STRUCT_MEMBER(std::vector<std::string>, names)
+ IPC_STRUCT_MEMBER(std::vector<gfx::Rect>, rects)
+IPC_STRUCT_END()
+
IPC_STRUCT_BEGIN(FrameHostMsg_OpenURL_Params)
IPC_STRUCT_MEMBER(GURL, url)
IPC_STRUCT_MEMBER(content::Referrer, referrer)
diff --git a/content/content_common.gypi b/content/content_common.gypi
index 7284ce1..030d2f8 100644
--- a/content/content_common.gypi
+++ b/content/content_common.gypi
@@ -125,7 +125,6 @@
'public/common/three_d_api_types.h',
'public/common/top_controls_state.h',
'public/common/top_controls_state_list.h',
- 'public/common/transition_element.h',
'public/common/url_constants.cc',
'public/common/url_constants.h',
'public/common/url_fetcher.h',
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
index d1d884c..db7875b 100644
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -228,18 +228,9 @@ import org.chromium.content_public.browser.WebContents;
}
@CalledByNative
- private void didStartNavigationTransitionForFrame(long frameId, String cssSelector) {
+ private void didStartNavigationTransitionForFrame(long frameId) {
if (mNavigationTransitionDelegate != null) {
- mNavigationTransitionDelegate.didStartNavigationTransitionForFrame(
- frameId, cssSelector);
- }
- }
-
- @CalledByNative
- private void addNavigationTransitionElements(String name, int x, int y, int width, int height) {
- if (mNavigationTransitionDelegate != null) {
- mNavigationTransitionDelegate.addNavigationTransitionElements(
- name, x, y, width, height);
+ mNavigationTransitionDelegate.didStartNavigationTransitionForFrame(frameId);
}
}
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java b/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java
index 31fbfe1..d719b43 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java
@@ -37,18 +37,6 @@ public interface NavigationTransitionDelegate {
/**
* Notifies that a navigation transition is started for a given frame.
* @param frameId A positive, non-zero integer identifying the navigating frame.
- * @param cssSelector The CSS selector, which is to be used by Activity Transitions
- * or applied to the transition layer's markup later.
*/
- public void didStartNavigationTransitionForFrame(long frameId, String cssSelector);
-
- /**
- * Add transition element's name, position and size.
- * @param name The name of the transition element.
- * @param x The x position of the transition element.
- * @param y The y position of the transition element.
- * @param width The width of the transition element.
- * @param height The height of the transition element.
- */
- public void addNavigationTransitionElements(String name, int x, int y, int width, int height);
+ public void didStartNavigationTransitionForFrame(long frameId);
}
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/TransitionTest.java b/content/public/android/javatests/src/org/chromium/content/browser/TransitionTest.java
index 04cc2e2..9d0c688 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/TransitionTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/TransitionTest.java
@@ -67,12 +67,7 @@ public class TransitionTest extends ContentShellTestBase {
}
@Override
- public void didStartNavigationTransitionForFrame(long frameId, String cssSelector) {
- }
-
- @Override
- public void addNavigationTransitionElements(
- String name, int x, int y, int width, int height) {
+ public void didStartNavigationTransitionForFrame(long frameId) {
}
public boolean getDidCallDefer() {
diff --git a/content/public/common/transition_element.h b/content/public/common/transition_element.h
deleted file mode 100644
index d8168b8..0000000
--- a/content/public/common/transition_element.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_PUBLIC_COMMON_TRANSITION_ELEMENT_H_
-#define CONTENT_PUBLIC_COMMON_TRANSITION_ELEMENT_H_
-
-#include <string>
-
-#include "content/common/content_export.h"
-#include "ui/gfx/geometry/rect.h"
-
-namespace content {
-
-// This struct stores the information of one transition element.
-struct CONTENT_EXPORT TransitionElement {
- std::string name;
- gfx::Rect rect;
-};
-
-} // namespace content
-
-#endif // CONTENT_PUBLIC_COMMON_TRANSITION_ELEMENT_H_
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 7bbdfdc..b99f8a0 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -2555,10 +2555,11 @@ void RenderFrameImpl::addNavigationTransitionData(
allowed_destination_host_pattern.utf8();
params.selector = selector.utf8();
params.markup = markup.utf8();
- params.elements.resize(web_names.size());
for (size_t i = 0; i < web_names.size(); i++) {
- params.elements[i].name = web_names[i].utf8();
- params.elements[i].rect = gfx::Rect(web_rects[i]);
+ params.names.push_back(web_names[i].utf8());
+ }
+ for (size_t i = 0; i < web_rects.size(); i++) {
+ params.rects.push_back(gfx::Rect(web_rects[i]));
}
Send(new FrameHostMsg_AddNavigationTransitionData(params));