Chromium Code Reviews| 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 // CeeeExecutor implementation | 5 // CeeeExecutor implementation |
| 6 // | 6 // |
| 7 // We use interfaces named ITabWindowManager and ITabWindow | 7 // We use interfaces named ITabWindowManager and ITabWindow |
| 8 // (documented at | 8 // (documented at |
| 9 // http://www.geoffchappell.com/viewer.htm?doc=studies/windows/ie/ieframe/interf aces/itabwindowmanager.htm | 9 // http://www.geoffchappell.com/viewer.htm?doc=studies/windows/ie/ieframe/interf aces/itabwindowmanager.htm |
| 10 // and | 10 // and |
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 363 } | 363 } |
| 364 DCHECK(sync != NULL); | 364 DCHECK(sync != NULL); |
| 365 | 365 |
| 366 hr = sync->Signal(); | 366 hr = sync->Signal(); |
| 367 if (FAILED(hr)) | 367 if (FAILED(hr)) |
| 368 LOG(ERROR) << "Failed to signal " << com::LogHr(hr); | 368 LOG(ERROR) << "Failed to signal " << com::LogHr(hr); |
| 369 | 369 |
| 370 return hr; | 370 return hr; |
| 371 } | 371 } |
| 372 | 372 |
| 373 CeeeExecutor::CeeeExecutor() : hwnd_(NULL) { | 373 CeeeExecutor::CeeeExecutor() |
| 374 : hwnd_(NULL), | |
| 375 broker_rpc_client_(false) { | |
|
Jói
2010/12/04 14:03:58
Please add a comment explaining why allow_restarts
Vitaly Buka (NO REVIEWS)
2010/12/04 18:23:22
Done.
| |
| 374 } | 376 } |
| 375 | 377 |
| 376 CeeeExecutor::~CeeeExecutor() { | 378 CeeeExecutor::~CeeeExecutor() { |
| 377 } | 379 } |
| 378 | 380 |
| 379 HRESULT CeeeExecutor::CreateTabCall(ICeeeTabExecutor* executor, | 381 HRESULT CeeeExecutor::CreateTabCall(ICeeeTabExecutor* executor, |
| 380 IUnknown *outer, | 382 IUnknown *outer, |
| 381 REFIID riid2, | 383 REFIID riid2, |
| 382 IUnknown **out) { | 384 IUnknown **out) { |
| 383 CComPtr<IUnknown> tab_call; | 385 CComPtr<IUnknown> tab_call; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 419 return hr; | 421 return hr; |
| 420 } | 422 } |
| 421 | 423 |
| 422 // If this is tab window then create the infobar manager. | 424 // If this is tab window then create the infobar manager. |
| 423 // TODO(mad@chromium.org): We are starting to need to have different classes | 425 // TODO(mad@chromium.org): We are starting to need to have different classes |
| 424 // for the different executors. | 426 // for the different executors. |
| 425 // TODO(hansl@chromium.org): We might not need to have an Executor for | 427 // TODO(hansl@chromium.org): We might not need to have an Executor for |
| 426 // Infobar. In any case, the construction below should have a reference to | 428 // Infobar. In any case, the construction below should have a reference to |
| 427 // a BHO and its EventSender so we don't create Infobars before the tab_id | 429 // a BHO and its EventSender so we don't create Infobars before the tab_id |
| 428 // is ready. | 430 // is ready. |
| 429 if (window_utils::GetTopLevelParent(hwnd_) != hwnd_) | 431 if (window_utils::GetTopLevelParent(hwnd_) != hwnd_) { |
| 432 hr = broker_rpc_client_.Connect(true); | |
| 433 if (FAILED(hr)) | |
| 434 return hr; | |
| 430 infobar_manager_.reset( | 435 infobar_manager_.reset( |
| 431 new infobar_api::InfobarManager(hwnd_, new BrokerRpcClient(false))); | 436 new infobar_api::InfobarManager(hwnd_, &broker_rpc_client_)); |
| 437 } | |
| 432 | 438 |
| 433 return S_OK; | 439 return S_OK; |
| 434 } | 440 } |
| 435 | 441 |
| 436 HRESULT CeeeExecutor::GetWebBrowser(IWebBrowser2** browser) { | 442 HRESULT CeeeExecutor::GetWebBrowser(IWebBrowser2** browser) { |
| 437 DCHECK(browser); | 443 DCHECK(browser); |
| 438 CComPtr<IFrameEventHandlerHost> frame_handler_host; | 444 CComPtr<IFrameEventHandlerHost> frame_handler_host; |
| 439 HRESULT hr = GetSite(IID_IFrameEventHandlerHost, | 445 HRESULT hr = GetSite(IID_IFrameEventHandlerHost, |
| 440 reinterpret_cast<void**>(&frame_handler_host)); | 446 reinterpret_cast<void**>(&frame_handler_host)); |
| 441 if (FAILED(hr)) { | 447 if (FAILED(hr)) { |
| (...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1006 | 1012 |
| 1007 STDMETHODIMP CeeeExecutor::OnTopFrameBeforeNavigate(BSTR url) { | 1013 STDMETHODIMP CeeeExecutor::OnTopFrameBeforeNavigate(BSTR url) { |
| 1008 DCHECK(infobar_manager_ != NULL) << "infobar_manager_ is not initialized"; | 1014 DCHECK(infobar_manager_ != NULL) << "infobar_manager_ is not initialized"; |
| 1009 if (infobar_manager_ == NULL) | 1015 if (infobar_manager_ == NULL) |
| 1010 return E_FAIL; | 1016 return E_FAIL; |
| 1011 | 1017 |
| 1012 // According to the specification, tab navigation closes the infobar. | 1018 // According to the specification, tab navigation closes the infobar. |
| 1013 infobar_manager_->HideAll(); | 1019 infobar_manager_->HideAll(); |
| 1014 return S_OK; | 1020 return S_OK; |
| 1015 } | 1021 } |
| OLD | NEW |