Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(478)

Side by Side Diff: content/browser/web_contents/web_contents_android.cc

Issue 652953008: Navigation transitions (web to native app): Pass data after starting provisional load (Chrome side) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit fix Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "content/browser/web_contents/web_contents_android.h" 5 #include "content/browser/web_contents/web_contents_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 317
318 std::vector<GURL>::const_iterator iter = entering_stylesheets.begin(); 318 std::vector<GURL>::const_iterator iter = entering_stylesheets.begin();
319 for (; iter != entering_stylesheets.end(); ++iter) { 319 for (; iter != entering_stylesheets.end(); ++iter) {
320 ScopedJavaLocalRef<jstring> jstring_url( 320 ScopedJavaLocalRef<jstring> jstring_url(
321 ConvertUTF8ToJavaString(env, iter->spec())); 321 ConvertUTF8ToJavaString(env, iter->spec()));
322 Java_WebContentsImpl_addEnteringStylesheetToTransition( 322 Java_WebContentsImpl_addEnteringStylesheetToTransition(
323 env, obj_.obj(), jstring_url.obj()); 323 env, obj_.obj(), jstring_url.obj());
324 } 324 }
325 } 325 }
326 326
327 void WebContentsAndroid::DidStartNavigationTransitionForFrame(int64 frame_id) { 327 void WebContentsAndroid::DidStartNavigationTransitionForFrame(
328 int64 frame_id,
329 const TransitionLayerData& transition_data) {
328 JNIEnv* env = AttachCurrentThread(); 330 JNIEnv* env = AttachCurrentThread();
331
332 ScopedJavaLocalRef<jstring> jstring_css_selector(
333 ConvertUTF8ToJavaString(env, transition_data.css_selector));
334
329 Java_WebContentsImpl_didStartNavigationTransitionForFrame( 335 Java_WebContentsImpl_didStartNavigationTransitionForFrame(
330 env, obj_.obj(), frame_id); 336 env, obj_.obj(), frame_id, jstring_css_selector.obj());
337
338 std::vector<std::string>::const_iterator it = transition_data.names.begin();
339 std::vector<gfx::Rect>::const_iterator jt = transition_data.rects.begin();
340 for (; it != transition_data.names.end() && jt != transition_data.rects.end();
oystein (OOO til 10th of July) 2014/10/27 18:45:12 Could the names+rects be stored together in a vect
Zhen Wang 2014/10/27 23:47:19 Done. But I didn't find whether customized struct
341 ++it, ++jt) {
342 ScopedJavaLocalRef<jstring> jstring_name(ConvertUTF8ToJavaString(env, *it));
343 Java_WebContentsImpl_addNavigationTransitionElements(
344 env, obj_.obj(), jstring_name.obj(),
345 jt->x(), jt->y(), jt->width(), jt->height());
346 }
331 } 347 }
332 348
333 void WebContentsAndroid::EvaluateJavaScript(JNIEnv* env, 349 void WebContentsAndroid::EvaluateJavaScript(JNIEnv* env,
334 jobject obj, 350 jobject obj,
335 jstring script, 351 jstring script,
336 jobject callback) { 352 jobject callback) {
337 RenderViewHost* rvh = web_contents_->GetRenderViewHost(); 353 RenderViewHost* rvh = web_contents_->GetRenderViewHost();
338 DCHECK(rvh); 354 DCHECK(rvh);
339 355
340 if (!rvh->IsRenderViewLive()) { 356 if (!rvh->IsRenderViewLive()) {
(...skipping 16 matching lines...) Expand all
357 ScopedJavaGlobalRef<jobject> j_callback; 373 ScopedJavaGlobalRef<jobject> j_callback;
358 j_callback.Reset(env, callback); 374 j_callback.Reset(env, callback);
359 content::RenderFrameHost::JavaScriptResultCallback js_callback = 375 content::RenderFrameHost::JavaScriptResultCallback js_callback =
360 base::Bind(&JavaScriptResultCallback, j_callback); 376 base::Bind(&JavaScriptResultCallback, j_callback);
361 377
362 web_contents_->GetMainFrame()->ExecuteJavaScript( 378 web_contents_->GetMainFrame()->ExecuteJavaScript(
363 ConvertJavaStringToUTF16(env, script), js_callback); 379 ConvertJavaStringToUTF16(env, script), js_callback);
364 } 380 }
365 381
366 } // namespace content 382 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_android.h ('k') | content/browser/web_contents/web_contents_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698