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

Side by Side Diff: android_webview/native/aw_contents.cc

Issue 869133005: Post a Message from Java to JS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: spelling fix Created 5 years, 10 months 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "android_webview/native/aw_contents.h" 5 #include "android_webview/native/aw_contents.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "android_webview/browser/aw_browser_context.h" 9 #include "android_webview/browser/aw_browser_context.h"
10 #include "android_webview/browser/aw_browser_main_parts.h" 10 #include "android_webview/browser/aw_browser_main_parts.h"
(...skipping 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after
1059 jint level, 1059 jint level,
1060 jboolean visible) { 1060 jboolean visible) {
1061 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1061 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
1062 browser_view_renderer_.TrimMemory(level, visible); 1062 browser_view_renderer_.TrimMemory(level, visible);
1063 } 1063 }
1064 1064
1065 // TODO(sgurun) add support for posting a frame whose name is known (only 1065 // TODO(sgurun) add support for posting a frame whose name is known (only
1066 // main frame is supported at this time, see crbug.com/389721) 1066 // main frame is supported at this time, see crbug.com/389721)
1067 void AwContents::PostMessageToFrame(JNIEnv* env, jobject obj, 1067 void AwContents::PostMessageToFrame(JNIEnv* env, jobject obj,
1068 jstring frame_name, jstring message, jstring source_origin, 1068 jstring frame_name, jstring message, jstring source_origin,
1069 jstring target_origin, jintArray msgPorts) { 1069 jstring target_origin, jintArray sent_ports) {
1070 1070
1071 base::string16 j_source_origin(ConvertJavaStringToUTF16(env, source_origin)); 1071 base::string16 j_source_origin(ConvertJavaStringToUTF16(env, source_origin));
1072 base::string16 j_target_origin(ConvertJavaStringToUTF16(env, target_origin)); 1072 base::string16 j_target_origin(ConvertJavaStringToUTF16(env, target_origin));
1073 base::string16 j_message(ConvertJavaStringToUTF16(env, message)); 1073 base::string16 j_message(ConvertJavaStringToUTF16(env, message));
1074 std::vector<int> j_ports; 1074 std::vector<int> j_ports;
1075 if (msgPorts != nullptr) 1075
1076 base::android::JavaIntArrayToIntVector(env, msgPorts, &j_ports); 1076 if (sent_ports != nullptr) {
1077 base::android::JavaIntArrayToIntVector(env, sent_ports, &j_ports);
1078 BrowserThread::PostTask(
1079 BrowserThread::IO,
1080 FROM_HERE,
1081 base::Bind(&AwMessagePortServiceImpl::RemoveSentPorts,
1082 base::Unretained(AwMessagePortServiceImpl::GetInstance()),
1083 j_ports));
1084 }
1077 1085
1078 content::MessagePortProvider::PostMessageToFrame(web_contents_.get(), 1086 content::MessagePortProvider::PostMessageToFrame(web_contents_.get(),
1079 j_source_origin, 1087 j_source_origin,
1080 j_target_origin, 1088 j_target_origin,
1081 j_message, 1089 j_message,
1082 j_ports); 1090 j_ports);
1083 } 1091 }
1084 1092
1085 scoped_refptr<AwMessagePortMessageFilter> 1093 scoped_refptr<AwMessagePortMessageFilter>
1086 AwContents::GetMessagePortMessageFilter() { 1094 AwContents::GetMessagePortMessageFilter() {
(...skipping 13 matching lines...) Expand all
1100 1108
1101 AwMessagePortServiceImpl::GetInstance()->CreateMessageChannel(env, callback, 1109 AwMessagePortServiceImpl::GetInstance()->CreateMessageChannel(env, callback,
1102 GetMessagePortMessageFilter()); 1110 GetMessagePortMessageFilter());
1103 } 1111 }
1104 1112
1105 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { 1113 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) {
1106 g_should_download_favicons = true; 1114 g_should_download_favicons = true;
1107 } 1115 }
1108 1116
1109 } // namespace android_webview 1117 } // namespace android_webview
OLDNEW
« no previous file with comments | « android_webview/native/aw_contents.h ('k') | android_webview/native/aw_message_port_service_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698