OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // Implementation of DeleteChromeHistory | 5 // Implementation of DeleteChromeHistory |
6 #include "chrome_frame/delete_chrome_history.h" | 6 #include "chrome_frame/delete_chrome_history.h" |
7 | 7 |
8 #include "chrome/browser/browsing_data_remover.h" | 8 #include "chrome/browser/browsing_data_remover.h" |
9 | 9 |
10 #include "base/win/windows_version.h" | 10 #include "base/win/windows_version.h" |
11 #include "chrome_frame/chrome_frame_activex.h" | 11 #include "chrome_frame/chrome_frame_activex.h" |
12 #include "chrome_frame/utils.h" | 12 #include "chrome_frame/utils.h" |
13 | 13 |
14 // Below other header to avoid symbol pollution. | 14 // Below other header to avoid symbol pollution. |
15 #define INITGUID | 15 #define INITGUID |
16 #include <deletebrowsinghistory.h> | 16 #include <deletebrowsinghistory.h> |
17 | 17 |
18 DeleteChromeHistory::DeleteChromeHistory() | 18 DeleteChromeHistory::DeleteChromeHistory() |
19 : remove_mask_(0) { | 19 : remove_mask_(0) { |
20 DLOG(INFO) << __FUNCTION__; | 20 DVLOG(1) << __FUNCTION__; |
21 } | 21 } |
22 | 22 |
23 DeleteChromeHistory::~DeleteChromeHistory() { | 23 DeleteChromeHistory::~DeleteChromeHistory() { |
24 } | 24 } |
25 | 25 |
26 | 26 |
27 HRESULT DeleteChromeHistory::FinalConstruct() { | 27 HRESULT DeleteChromeHistory::FinalConstruct() { |
28 DLOG(INFO) << __FUNCTION__; | 28 DVLOG(1) << __FUNCTION__; |
29 Initialize(); | 29 Initialize(); |
30 return S_OK; | 30 return S_OK; |
31 } | 31 } |
32 | 32 |
33 void DeleteChromeHistory::OnAutomationServerReady() { | 33 void DeleteChromeHistory::OnAutomationServerReady() { |
34 DLOG(INFO) << __FUNCTION__; | 34 DVLOG(1) << __FUNCTION__; |
35 automation_client_->RemoveBrowsingData(remove_mask_); | 35 automation_client_->RemoveBrowsingData(remove_mask_); |
36 loop_.Quit(); | 36 loop_.Quit(); |
37 } | 37 } |
38 | 38 |
39 void DeleteChromeHistory::OnAutomationServerLaunchFailed( | 39 void DeleteChromeHistory::OnAutomationServerLaunchFailed( |
40 AutomationLaunchResult reason, const std::string& server_version) { | 40 AutomationLaunchResult reason, const std::string& server_version) { |
41 DLOG(WARNING) << __FUNCTION__; | 41 DLOG(WARNING) << __FUNCTION__; |
42 loop_.Quit(); | 42 loop_.Quit(); |
43 } | 43 } |
44 | 44 |
45 void DeleteChromeHistory::GetProfilePath(const std::wstring& profile_name, | 45 void DeleteChromeHistory::GetProfilePath(const std::wstring& profile_name, |
46 FilePath* profile_path) { | 46 FilePath* profile_path) { |
47 ChromeFramePlugin::GetProfilePath(kIexploreProfileName, profile_path); | 47 ChromeFramePlugin::GetProfilePath(kIexploreProfileName, profile_path); |
48 } | 48 } |
49 | 49 |
50 STDMETHODIMP DeleteChromeHistory::DeleteBrowsingHistory(DWORD flags) { | 50 STDMETHODIMP DeleteChromeHistory::DeleteBrowsingHistory(DWORD flags) { |
51 DLOG(INFO) << __FUNCTION__; | 51 DVLOG(1) << __FUNCTION__; |
52 // Usually called inside a quick startup/tear-down routine by RunDLL32. You | 52 // Usually called inside a quick startup/tear-down routine by RunDLL32. You |
53 // can simulate the process by calling: | 53 // can simulate the process by calling: |
54 // RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255 | 54 // RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255 |
55 // Since automation setup isn't synchronous, we can be tearing down while | 55 // Since automation setup isn't synchronous, we can be tearing down while |
56 // being only partially set-up, causing even synchronous IPCs to be dropped. | 56 // being only partially set-up, causing even synchronous IPCs to be dropped. |
57 // Since the *Chrome* startup/tear-down occurs synchronously from the | 57 // Since the *Chrome* startup/tear-down occurs synchronously from the |
58 // perspective of automation, we can add a flag to the chrome.exe invocation | 58 // perspective of automation, we can add a flag to the chrome.exe invocation |
59 // in lieu of sending an IPC when it seems appropriate. Since we assume this | 59 // in lieu of sending an IPC when it seems appropriate. Since we assume this |
60 // happens in one-off fashion, don't attempt to pack REMOVE_* arguments. | 60 // happens in one-off fashion, don't attempt to pack REMOVE_* arguments. |
61 // Instead, have the browser process clobber all history. | 61 // Instead, have the browser process clobber all history. |
(...skipping 29 matching lines...) Expand all Loading... |
91 remove_mask_ |= BrowsingDataRemover::REMOVE_HISTORY; | 91 remove_mask_ |= BrowsingDataRemover::REMOVE_HISTORY; |
92 | 92 |
93 loop_.PostDelayedTask(FROM_HERE, | 93 loop_.PostDelayedTask(FROM_HERE, |
94 new MessageLoop::QuitTask, 1000 * 600); | 94 new MessageLoop::QuitTask, 1000 * 600); |
95 loop_.MessageLoop::Run(); | 95 loop_.MessageLoop::Run(); |
96 | 96 |
97 return S_OK; | 97 return S_OK; |
98 } | 98 } |
99 | 99 |
100 | 100 |
OLD | NEW |