chromium : extensions RendererStartupHelper InitializeProcess back trace
#3 0x561c5ce2f331 extensions::RendererStartupHelper::Observe()
#4 0x7fe6def2a33f content::NotificationServiceImpl::Notify()
#5 0x7fe6df12ebac content::RenderProcessHostImpl::OnProcessLaunched()
#6 0x7fe6de83aebc content::ChildProcessLauncher::Notify()
#7 0x7fe6de83da40 content::internal::ChildProcessLauncherHelper::PostLaunchOnClientThread()
#8 0x7fe6de83e529 _ZN4base8internal13FunctorTraitsIMN7content8internal26ChildProcessLauncherHelperEFvNS4_7ProcessEiEvE6InvokeI13scoped_refptrIS4_EJS5_iEEEvS7_OT_DpOT0_
#9 0x7fe6de83e43a _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIMN7content8internal26ChildProcessLauncherHelperEFvNS6_7ProcessEiEJ13scoped_refptrIS6_ES7_iEEEvOT_DpOT0_
#10 0x7fe6de83e3a3 _ZN4base8internal7InvokerINS0_9BindStateIMN7content8internal26ChildProcessLauncherHelperEFvNS5_7ProcessEiEJ13scoped_refptrIS5_ENS0_13PassedWrapperIS6_EEiEEEFvvEE7RunImplIS8_NSt3__15tupleIJSA_SC_iEEEJLm0ELm1ELm2EEEEvOT_OT0_NSH_16integer_sequenceImJXspT1_EEEE
#11 0x7fe6de83e279 _ZN4base8internal7InvokerINS0_9BindStateIMN7content8internal26ChildProcessLauncherHelperEFvNS5_7ProcessEiEJ13scoped_refptrIS5_ENS0_13PassedWrapperIS6_EEiEEEFvvEE7RunOnceEPNS0_13BindStateBaseE
#12 0x7fe6e43eb061 _ZNO4base12OnceCallbackIFvvEE3RunEv
#13 0x7fe6e44451ca base::debug::TaskAnnotator::RunTask()
#14 0x7fe6e44e6105 base::internal::IncomingTaskQueue::RunTask()
#15 0x7fe6e44ef05a base::MessageLoop::RunTask()
#16 0x7fe6e44ef306 base::MessageLoop::DeferOrRunPendingTask()
#17 0x7fe6e44ef650 base::MessageLoop::DoWork()
#18 0x7fe6e44f2cfc base::MessagePumpGlib::HandleDispatch()
#19 0x7fe6e44f34a1 base::(anonymous namespace)::WorkSourceDispatch()
#20 0x7fe6cd155e04 g_main_context_dispatch
#21 0x7fe6cd156048 <unknown>
#22 0x7fe6cd1560ec g_main_context_iteration
#23 0x7fe6e44f2dff base::MessagePumpGlib::Run()
#24 0x7fe6e44ee7dc base::MessageLoop::Run()
#25 0x7fe6e459b79b base::RunLoop::Run()
#26 0x561c5e0fad2d ChromeBrowserMainParts::MainMessageLoopRun()
#27 0x7fe6de75fb56 content::BrowserMainLoop::RunMainMessageLoopParts()
#28 0x7fe6de76995f content::BrowserMainRunnerImpl::Run()
#29 0x7fe6de7536ab content::BrowserMain()
#30 0x7fe6e03219b8 content::RunNamedProcessTypeMain()
#31 0x7fe6e03245aa content::ContentMainRunnerImpl::Run()
#32 0x7fe6e031aa6d content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#33 0x7fe6e4c5c89d service_manager::Main()
#34 0x7fe6e03207ff content::ContentMain()
#35 0x561c5c8da23e ChromeMain
#36 0x561c5c8da152 main
#37 0x7fe6cb63bf45 __libc_start_main
#38 0x561c5c8da02a _start
chromium : extensions::Extension construction back trace in Browser process
#3 0x55aaedfdaf22 extensions::Extension::Create()
#4 0x55aaeec372eb extensions::ComponentLoader::CreateExtension()
#5 0x55aaeec34321 extensions::ComponentLoader::Load()
#6 0x55aaeec34100 extensions::ComponentLoader::LoadAll()
#7 0x55aaeecc028c ExtensionService::Init()
#8 0x55aaeecffa72 extensions::ExtensionSystemImpl::Shared::Init()
#9 0x55aaeed00452 extensions::ExtensionSystemImpl::InitForRegularProfile()
#10 0x55aaec95317a ProfileManager::DoFinalInitForServices()
#11 0x55aaec952fb3 ProfileManager::DoFinalInit()
#12 0x55aaec954d53 ProfileManager::AddProfile()
#13 0x55aaec9466b2 ProfileManager::CreateAndInitializeProfile()
#14 0x55aaec946207 ProfileManager::GetProfile()
#15 0x55aaf00ba618 GetStartupProfile()
#16 0x55aaec4ca65f (anonymous namespace)::CreatePrimaryProfile()
#17 0x55aaec4c8346 ChromeBrowserMainParts::PreMainMessageLoopRunImpl()
#18 0x55aaec4c75ac ChromeBrowserMainParts::PreMainMessageLoopRun()
#19 0x7f1d0223d1e4 content::BrowserMainLoop::PreMainMessageLoopRun()
#20 0x7f1d01124cfd _ZN4base8internal13FunctorTraitsIMN7content14NetworkContext11DiskCheckerEFvvEvE6InvokeIPS4_JEEEvS6_OT_DpOT0_
#21 0x7f1d01124c74 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIMN7content14NetworkContextEFvvEJPS5_EEEvOT_DpOT0_
#22 0x7f1d01124c25 _ZN4base8internal7InvokerINS0_9BindStateIMN7content14NetworkContext11DiskCheckerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE7RunImplIRKS7_RKNSt3__15tupleIJS9_EEEJLm0EEEEvOT_OT0_NSG_16integer_sequenceImJXspT1_EEEE
#23 0x7f1d0112a9dc _ZN4base8internal7InvokerINS0_9BindStateIMN7content14NetworkContext11DiskCheckerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#24 0x7f1d010e550d _ZNKR4base17RepeatingCallbackIFvvEE3RunEv
#25 0x7f1d02ea2edd content::StartupTaskRunner::RunAllTasksNow()
#26 0x7f1d02238a67 content::BrowserMainLoop::CreateStartupTasks()
#27 0x7f1d0224760d content::BrowserMainRunnerImpl::Initialize()
#28 0x7f1d02231644 content::BrowserMain()
#29 0x7f1d03dff9b8 content::RunNamedProcessTypeMain()
#30 0x7f1d03e025aa content::ContentMainRunnerImpl::Run()
#31 0x7f1d03df8a6d content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#32 0x7f1d0873a89d service_manager::Main()
#33 0x7f1d03dfe7ff content::ContentMain()
#34 0x55aaeacaa23e ChromeMain
#35 0x55aaeacaa152 main
#36 0x7f1cef119f45 __libc_start_main
chromium : extensions::Extension construction back trace in Render process
extensions::Dispatcher receive ExtensionMsg_Loaded from
extensions/browser/renderer_startup_helper.cc
RendererStartupHelper::InitializeProcess
// Loaded extensions.
std::vector<ExtensionMsg_Loaded_Params> loaded_extensions;
BrowserContext* renderer_context = process->GetBrowserContext();
const ExtensionSet& extensions =
ExtensionRegistry::Get(browser_context_)->enabled_extensions();
for (const auto& ext : extensions) {
// OnLoadedExtension should have already been called for the extension.
DCHECK(base::ContainsKey(extension_process_map_, ext->id()));
DCHECK(!base::ContainsKey(extension_process_map_[ext->id()], process));
if (!IsExtensionVisibleToContext(*ext, renderer_context))
continue;
// TODO(kalman): Only include tab specific permissions for extension
// processes, no other process needs it, so it's mildly wasteful.
// I am not sure this is possible to know this here, at such a low
// level of the stack. Perhaps site isolation can help.
bool include_tab_permissions = true;
loaded_extensions.push_back(
ExtensionMsg_Loaded_Params(ext.get(), include_tab_permissions));
extension_process_map_[ext->id()].insert(process);
}
// Activate pending extensions.
process->Send(new ExtensionMsg_Loaded(loaded_extensions));
#2 0x55717e31dfa6 extensions::Extension::Create()
#3 0x55717e369acb ExtensionMsg_Loaded_Params::ConvertToExtension()
#4 0x55717c503dc5 extensions::Dispatcher::OnLoaded()
#5 0x55717b464a9d _ZN4base20DispatchToMethodImplIPN10extensions22ExtensionMessageFilterEMS2_FvRKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEENS4_5tupleIJSA_EEEJLm0EEEEvRKT_T0_OT1_NS4_16integer_sequenceImJXspT2_EEEE
#6 0x55717b4649f8 _ZN4base16DispatchToMethodIPN10extensions22ExtensionMessageFilterEMS2_FvRKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEENS4_5tupleIJSA_EEEEEvRKT_T0_OT1_
#7 0x55717b464987 _ZN3IPC16DispatchToMethodIN10extensions22ExtensionMessageFilterEMS2_FvRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEvNS3_5tupleIJS9_EEEEEvPT_T0_PT1_OT2_
#8 0x55717c509c75 _ZN3IPC8MessageTI24ExtensionMsg_Loaded_MetaNSt3__15tupleIJNS2_6vectorI26ExtensionMsg_Loaded_ParamsNS2_9allocatorIS5_EEEEEEEvE8DispatchIN10extensions10DispatcherESD_vMSD_FvRKS8_EEEbPKNS_7MessageEPT_PT0_PT1_T2_
#9 0x55717c502bc9 extensions::Dispatcher::OnControlMessageReceived()
#10 0x7f342b8fda03 content::RenderThreadImpl::OnControlMessageReceived()
#11 0x7f34292185a3 content::ChildThreadImpl::OnMessageReceived()
#12 0x7f342b8fc2d8 content::RenderThreadImpl::OnMessageReceived()
#13 0x7f342e3c8bc8 IPC::ChannelProxy::Context::OnDispatchMessage()
#14 0x7f342e3cf03f _ZN4base8internal13FunctorTraitsIMN3IPC12ChannelProxy7ContextEFvRKNS2_7MessageEEvE6InvokeIRK13scoped_refptrIS4_EJS7_EEEvS9_OT_DpOT0_
#15 0x7f342e3cef9f _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN3IPC12ChannelProxy7ContextEFvRKNS4_7MessageEEJRK13scoped_refptrIS6_ES9_EEEvOT_DpOT0_
#16 0x7f342e3cef2d _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE7RunImplIRKSA_RKNSt3__15tupleIJSC_S6_EEEJLm0ELm1EEEEvOT_OT0_NSJ_16integer_sequenceImJXspT1_EEEE
#17 0x7f342e3cee3c _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE3RunEPNS0_13BindStateBaseE
#18 0x7f342feb4061 _ZNO4base12OnceCallbackIFvvEE3RunEv
#19 0x7f342ff0e1ca base::debug::TaskAnnotator::RunTask()
#20 0x7f341d17b429 blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue()
#21 0x7f341d175ef9 blink::scheduler::TaskQueueManager::DoWork()
#22 0x7f341d184287 _ZN4base8internal13FunctorTraitsIMN5blink9scheduler16TaskQueueManagerEFvbEvE6InvokeIRKNS_7WeakPtrIS4_EEJRKbEEEvS6_OT_DpOT0_
#23 0x7f341d1841e5 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN5blink9scheduler16TaskQueueManagerEFvbERKNS_7WeakPtrIS6_EEJRKbEEEvOT_OT0_DpOT1_
#24 0x7f341d18415d _ZN4base8internal7InvokerINS0_9BindStateIMN5blink9scheduler16TaskQueueManagerEFvbEJNS_7WeakPtrIS5_EEbEEEFvvEE7RunImplIRKS7_RKNSt3__15tupleIJS9_bEEEJLm0ELm1EEEEvOT_OT0_NSG_16integer_sequenceImJXspT1_EEEE
#25 0x7f341d18406c _ZN4base8internal7InvokerINS0_9BindStateIMN5blink9scheduler16TaskQueueManagerEFvbEJNS_7WeakPtrIS5_EEbEEEFvvEE3RunEPNS0_13BindStateBaseE
#26 0x7f342feb4061 _ZNO4base12OnceCallbackIFvvEE3RunEv
#27 0x7f342ff0e1ca base::debug::TaskAnnotator::RunTask()
#28 0x7f342ffaf105 base::internal::IncomingTaskQueue::RunTask()
#29 0x7f342ffb805a base::MessageLoop::RunTask()
#30 0x7f342ffb8306 base::MessageLoop::DeferOrRunPendingTask()
#31 0x7f342ffb8650 base::MessageLoop::DoWork()
#32 0x7f342ffbb19a base::MessagePumpDefault::Run()
#33 0x7f342ffb77dc base::MessageLoop::Run()
#34 0x7f343006479b base::RunLoop::Run()
#35 0x7f342b962e2b content::RendererMain()
#36 0x7f342bde9e84 content::RunZygote()
#37 0x7f342bdeab61 content::RunNamedProcessTypeMain()
#38 0x7f342bded5aa content::ContentMainRunnerImpl::Run()
#39 0x7f342bde3a6d content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#40 0x7f343072589d service_manager::Main()
#41 0x7f342bde97ff content::ContentMain()
#42 0x55717afed23e ChromeMain
#43 0x55717afed152 main
#44 0x7f3417104f45 __libc_start_main
#45 0x55717afed02a _start
nginx : set up http/https conf for your server(Ghost)
All you need to do is replace the server name and port.
All reqest to cluster.errong.win will be proxyed by http://127.0.0.1:6666
http conf
server {
listen 80;
listen [::]:80;
server_name cluster.errong.win;
root /home/errong_leng/www/cluster/system/nginx-root;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:6666;
}
location ~ /.well-known {
allow all;
}
client_max_body_size 50m;
}
enable http server to nginx
ln -sf /home/errong_leng/www/cluster/system/files/cluster.errong.win.conf /etc/nginx/sites-available/cluster.errong.win.conf
ln -sf
/etc/nginx/sites-available/cluster.errong.win.conf
/etc/nginx/sites-enabled/cluster.errong.win.conf
Use Let's Encrypt
Let's Encrypt is a free, automated, and open Certificate Authority./etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain cluster.errong.win --webroot /home/errong_leng/www/cluster/system/nginx-root --reloadcmd "nginx -s reload" --accountemail errong.leng@gmail.com
https conf
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name cluster.errong.win;
root /home/errong_leng/www/cluster/system/nginx-root;
ssl_certificate /etc/letsencrypt/cluster.errong.win/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/cluster.errong.win/cluster.errong.win.key;
include /etc/nginx/snippets/ssl-params.conf;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:6666;
}
location ~ /.well-known {
allow all;
}
client_max_body_size 50m;
}
enable https server to nginx
ln -sf /home/errong_leng/www/cluster/system/files/cluster.errong.win-ssl.conf /etc/nginx/sites-available/cluster.errong.win-ssl.conf
ln -sf
/etc/nginx/sites-available/cluster.errong.win-ssl.conf
/etc/nginx/sites-enabled/cluster.errong.win-ssl.conf
restart nginx service
service nginx restart
android studio : CreateProcess error=216, This version of %1 is not compatible with the version of Windows you're running
Error
CreateProcess error=216, This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher
Solution I
Your sdk location not match, select the real sdk location
Someone says it works, but not for me.
Solution II
REASON
This happens because for now they only ship 64bit JRE with Android Studio for Windows which produces glitches in 32 bit systems.
SOLUTION
do not use the embedded JDK: Go to File -> Project Structure dialog, uncheck "Use embedded JDK" and select the 32-bit JRE you've installed separately in your system
decrease the memory footprint for Gradle in gradle.properties(Project Properties), for eg set it to -Xmx768m.
For more details: https://code.google.com/p/android/issues/detail?id=219524
react-native : navigate/load url via WebView
No Image, No Truth
use WebView component in reactnative.
var { ...., WebView, } = React;
initial state give a default url
getInitialState: function() { return { url: '', // or default url }; },
render with state url
<WebView ....your styles, properties url={this.state.url} />
Navigate/load codes
load() { this.setState({url:'http://google.com'}); }
Full Sample Codes
import React, { Component } from 'react';
import {
Button,
Modal,
Image,
Keyboard,
NativeModules,
Platform,
StyleSheet,
Text,
TextInput,
TouchableOpacity,
View,
WebView,
} from 'react-native';
const { WeChat } = NativeModules;
const SHARE_TO_WXTIMELINE = 0;
const SHARE_TO_WXSESSION = 1;
const webview = "webview";
const HOME_URL = "https://errong.win";
export default class App extends Component<{}> {
componentWillMount () {
this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', () => {this.keyboardDidHide()});
}
componentWillUnmount () {
this.keyboardDidHideListener.remove();
}
keyboardDidHide () {
console.log( this.urlText );
if (this.urlText != null) {
this.setState({url:this.urlText});
}
}
constructor(props) {
super(props);
this.state = {shareModalVisible : false, url : HOME_URL, urlBarVisible : true};
}
setShareModalVisible(visible) {
this.setState({shareModalVisible : visible});
}
onShare(scene) {
this.setShareModalVisible(false);
this.scene = scene;
if (this.shareMsg == null)
return;
if (WeChat.shareToTimeline)
WeChat.shareToTimeline(this.shareMsg, this.scene, null);
}
onWebViewMessage(event) {
console.warn(event.nativeEvent.data);
let msg;
try {
msg = JSON.parse(event.nativeEvent.data);
} catch (err) {
console.warn(err);
return;
}
if (msg.id == "ABSTRACT_FETCHED")
this.shareMsg = msg;
}
genAbstractJS() {
const genAbstractFunction = function() {
try {
let title;
let description;
let imageUrl;
let msg;
let n = document.querySelector('head title');
if (n)
title = n.innerText;
n = document.querySelector('p');
if (n)
description = n.innerText;
n = document.querySelector('p img');
if (n)
imageUrl = n.src;
if (description && imageUrl) {
msg = { 'id' : 'ABSTRACT_FETCHED',
'type' : 'textimage',
'description' : description,
'imageUrl': imageUrl
};
} else {
msg = { 'id' : 'ABSTRACT_FETCHED',
'type' : 'news',
'webpageUrl' : window.location.href
};
}
window.postMessage(JSON.stringify(msg), "*");
} catch (err) {
console.warn(err);
}
}
let js = "(" + String(genAbstractFunction) + ")();";
console.log(js);
return js;
}
onLoadEnd() {
this.refs[webview].injectJavaScript(this.genAbstractJS());
}
onUrlBar() {
}
renderUrlBar() {
if (this.state.urlBarVisible) {
return (
<TouchableOpacity style={styles.urlbar} onPress={() => {this.onUrlBar()}}>
<TextInput
style={styles.urlentry}
placeholder="search or input url"
onChangeText={(text) => {this.urlText = text}}
/>
)
} else {
return null;
}
}
render() {
return (
{this.renderUrlBar()}
<WebView
ref={webview}
style={{flex:1}}
javaScriptEnabled={true}
onMessage={(event) => {this.onWebViewMessage(event)}}
onLoadEnd={this.onLoadEnd.bind(this)}
source={{uri:this.state.url}}
/>
<Button
onPress={() => {this.setShareModalVisible(true)}}
title="Share"
color="#841584"
accessibilityLabel="Social Share"
/>
<TouchableOpacity style={styles.sharebutton} onPress={() => {this.onShare(SHARE_TO_WXTIMELINE)}}>
<Image
source={require('./res/img/wxtimeline.png')}
/>
<TouchableOpacity style={styles.sharebutton} onPress={() => {this.onShare(SHARE_TO_WXSESSION)}}>
<Image
source={require("./res/img/wxsession.png")}
/>
);
}
}
const styles = StyleSheet.create({
urlbar:{
backgroundColor:'#fafad2',
borderTopLeftRadius:4,
borderTopRightRadius:4,
borderBottomLeftRadius:4,
borderBottomRightRadius:4,
boderColor : '#C0C0C0',
borderWidth: 1
},
urlentry:{
height: 40
},
sgc:{
height:100,
width:300,
borderTopLeftRadius:10,
borderTopRightRadius:10,
borderBottomLeftRadius:10,
borderBottomRightRadius:10,
alignSelf: 'center',
top:400,
backgroundColor:'#fafad2'
},
sharegroup: {
flex:1,
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-around',
},
sharebutton: {
width:64,
height:64
}
})
fixed: embedded-redis: Unable to run on macOS Sonoma
Issue you might see below error while trying to run embedded-redis for your testing on your macOS after you upgrade to Sonoma. java.la...
-
F:\webrowser>react-native run-android Scanning folders for symlinks in F:\webrowser\node_modules (73ms) Starting JS server... Buildin...
-
Refer: https://github.com/bazelbuild/bazel/wiki/Building-with-a-custom-toolchain https://www.tensorflow.org/tutorials/image_recognition
-
Solution react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android...