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...) 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...) 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...) 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 |