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

Side by Side Diff: chrome/browser/plugin_process_host.cc

Issue 18604: Fix a timing issue that caused gears to fail to load sometimes.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/plugin_process_host.h ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "chrome/browser/plugin_process_host.h" 5 #include "chrome/browser/plugin_process_host.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 new_cmd_line.AppendArguments(cmd_line, true); 504 new_cmd_line.AppendArguments(cmd_line, true);
505 cmd_line = new_cmd_line; 505 cmd_line = new_cmd_line;
506 } 506 }
507 507
508 if (!locale.empty()) { 508 if (!locale.empty()) {
509 // Pass on the locale so the null plugin will use the right language in the 509 // Pass on the locale so the null plugin will use the right language in the
510 // prompt to install the desired plugin. 510 // prompt to install the desired plugin.
511 cmd_line.AppendSwitchWithValue(switches::kLang, locale); 511 cmd_line.AppendSwitchWithValue(switches::kLang, locale);
512 } 512 }
513 513
514 // Gears requires the data dir to be available on startup.
515 std::wstring data_dir = plugin_service_->GetChromePluginDataDir();;
516 DCHECK(!data_dir.empty());
517 cmd_line.AppendSwitchWithValue(switches::kPluginDataDir, data_dir);
518
514 cmd_line.AppendSwitchWithValue(switches::kProcessType, 519 cmd_line.AppendSwitchWithValue(switches::kProcessType,
515 switches::kPluginProcess); 520 switches::kPluginProcess);
516 521
517 cmd_line.AppendSwitchWithValue(switches::kProcessChannelID, 522 cmd_line.AppendSwitchWithValue(switches::kProcessChannelID,
518 channel_id_); 523 channel_id_);
519 524
520 cmd_line.AppendSwitchWithValue(switches::kPluginPath, 525 cmd_line.AppendSwitchWithValue(switches::kPluginPath,
521 plugin_path.ToWStringHack()); 526 plugin_path.ToWStringHack());
522 527
523 bool in_sandbox = !browser_command_line.HasSwitch(switches::kNoSandbox) && 528 bool in_sandbox = !browser_command_line.HasSwitch(switches::kNoSandbox) &&
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 #endif 648 #endif
644 649
645 IPC_BEGIN_MESSAGE_MAP(PluginProcessHost, msg) 650 IPC_BEGIN_MESSAGE_MAP(PluginProcessHost, msg)
646 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_ChannelCreated, OnChannelCreated) 651 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_ChannelCreated, OnChannelCreated)
647 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_DownloadUrl, OnDownloadUrl) 652 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_DownloadUrl, OnDownloadUrl)
648 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_GetPluginFinderUrl, 653 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_GetPluginFinderUrl,
649 OnGetPluginFinderUrl) 654 OnGetPluginFinderUrl)
650 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_ShutdownRequest, 655 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_ShutdownRequest,
651 OnPluginShutdownRequest) 656 OnPluginShutdownRequest)
652 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_PluginMessage, OnPluginMessage) 657 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_PluginMessage, OnPluginMessage)
653 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_GetPluginDataDir,
654 OnGetPluginDataDir)
655 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestResource, OnRequestResource) 658 IPC_MESSAGE_HANDLER(ViewHostMsg_RequestResource, OnRequestResource)
656 IPC_MESSAGE_HANDLER(ViewHostMsg_CancelRequest, OnCancelRequest) 659 IPC_MESSAGE_HANDLER(ViewHostMsg_CancelRequest, OnCancelRequest)
657 IPC_MESSAGE_HANDLER(ViewHostMsg_DataReceived_ACK, OnDataReceivedACK) 660 IPC_MESSAGE_HANDLER(ViewHostMsg_DataReceived_ACK, OnDataReceivedACK)
658 IPC_MESSAGE_HANDLER(ViewHostMsg_UploadProgress_ACK, OnUploadProgressACK) 661 IPC_MESSAGE_HANDLER(ViewHostMsg_UploadProgress_ACK, OnUploadProgressACK)
659 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_SyncLoad, OnSyncLoad) 662 IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_SyncLoad, OnSyncLoad)
660 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_GetCookies, OnGetCookies) 663 IPC_MESSAGE_HANDLER(PluginProcessHostMsg_GetCookies, OnGetCookies)
661 IPC_MESSAGE_HANDLER_DELAY_REPLY(PluginProcessHostMsg_ResolveProxy, 664 IPC_MESSAGE_HANDLER_DELAY_REPLY(PluginProcessHostMsg_ResolveProxy,
662 OnResolveProxy) 665 OnResolveProxy)
663 IPC_MESSAGE_HANDLER_DELAY_REPLY(PluginProcessHostMsg_CreateWindow, 666 IPC_MESSAGE_HANDLER_DELAY_REPLY(PluginProcessHostMsg_CreateWindow,
664 OnCreateWindow) 667 OnCreateWindow)
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 ChromeThread::GetMessageLoop(ChromeThread::IO)); 914 ChromeThread::GetMessageLoop(ChromeThread::IO));
912 915
913 ChromePluginLib *chrome_plugin = ChromePluginLib::Find(plugin_path_); 916 ChromePluginLib *chrome_plugin = ChromePluginLib::Find(plugin_path_);
914 if (chrome_plugin) { 917 if (chrome_plugin) {
915 void *data_ptr = const_cast<void*>(reinterpret_cast<const void*>(&data[0])); 918 void *data_ptr = const_cast<void*>(reinterpret_cast<const void*>(&data[0]));
916 uint32 data_len = static_cast<uint32>(data.size()); 919 uint32 data_len = static_cast<uint32>(data.size());
917 chrome_plugin->functions().on_message(data_ptr, data_len); 920 chrome_plugin->functions().on_message(data_ptr, data_len);
918 } 921 }
919 } 922 }
920 923
921 void PluginProcessHost::OnGetPluginDataDir(std::wstring* retval) {
922 *retval = plugin_service_->GetChromePluginDataDir();
923 }
924
925 void PluginProcessHost::OnCreateWindow(HWND parent, IPC::Message* reply_msg) { 924 void PluginProcessHost::OnCreateWindow(HWND parent, IPC::Message* reply_msg) {
926 // Need to create this window on the UI thread. 925 // Need to create this window on the UI thread.
927 plugin_service_->main_message_loop()->PostTask(FROM_HERE, 926 plugin_service_->main_message_loop()->PostTask(FROM_HERE,
928 new CreateWindowTask(plugin_path_, parent, reply_msg)); 927 new CreateWindowTask(plugin_path_, parent, reply_msg));
929 } 928 }
930 929
931 void PluginProcessHost::OnDestroyWindow(HWND window) { 930 void PluginProcessHost::OnDestroyWindow(HWND window) {
932 plugin_service_->main_message_loop()->PostTask(FROM_HERE, 931 plugin_service_->main_message_loop()->PostTask(FROM_HERE,
933 new DestroyWindowTask(window)); 932 new DestroyWindowTask(window));
934 } 933 }
935 934
936 void PluginProcessHost::Shutdown() { 935 void PluginProcessHost::Shutdown() {
937 936
938 Send(new PluginProcessMsg_BrowserShutdown); 937 Send(new PluginProcessMsg_BrowserShutdown);
939 } 938 }
940 939
OLDNEW
« no previous file with comments | « chrome/browser/plugin_process_host.h ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698