| Index: ceee/ie/plugin/bho/browser_helper_object.cc
|
| ===================================================================
|
| --- ceee/ie/plugin/bho/browser_helper_object.cc (revision 68188)
|
| +++ ceee/ie/plugin/bho/browser_helper_object.cc (working copy)
|
| @@ -12,6 +12,7 @@
|
|
|
| #include "base/debug/trace_event.h"
|
| #include "base/json/json_reader.h"
|
| +#include "base/json/json_writer.h"
|
| #include "base/logging.h"
|
| #include "base/string_util.h"
|
| #include "base/tuple.h"
|
| @@ -20,6 +21,7 @@
|
| #include "ceee/common/window_utils.h"
|
| #include "ceee/common/windows_constants.h"
|
| #include "ceee/ie/broker/tab_api_module.h"
|
| +#include "ceee/ie/common/constants.h"
|
| #include "ceee/ie/common/extension_manifest.h"
|
| #include "ceee/ie/common/ie_util.h"
|
| #include "ceee/ie/common/metrics_util.h"
|
| @@ -317,24 +319,6 @@
|
| return registrar->UnregisterExecutor(thread_id);
|
| }
|
|
|
| -HRESULT BrowserHelperObject::SetTabToolBandIdForHandle(int tool_band_id,
|
| - long tab_handle) {
|
| - base::win::ScopedComPtr<ICeeeBrokerRegistrar> registrar;
|
| - HRESULT hr = GetBrokerRegistrar(registrar.Receive());
|
| - if (FAILED(hr))
|
| - return hr;
|
| - return registrar->SetTabToolBandIdForHandle(tool_band_id, tab_handle);
|
| -}
|
| -
|
| -HRESULT BrowserHelperObject::SetTabIdForHandle(int tool_band_id,
|
| - long tab_handle) {
|
| - base::win::ScopedComPtr<ICeeeBrokerRegistrar> registrar;
|
| - HRESULT hr = GetBrokerRegistrar(registrar.Receive());
|
| - if (FAILED(hr))
|
| - return hr;
|
| - return registrar->SetTabIdForHandle(tool_band_id, tab_handle);
|
| -}
|
| -
|
| HRESULT BrowserHelperObject::Initialize(IUnknown* site) {
|
| TRACE_EVENT_INSTANT("ceee.bho.initialize", this, "");
|
| mu::ScopedTimer metrics_timer("ceee/BHO.Initialize", &broker_rpc());
|
| @@ -636,15 +620,14 @@
|
| return false;
|
| }
|
|
|
| - CeeeWindowHandle handle = reinterpret_cast<CeeeWindowHandle>(tab_window_);
|
| - hr = SetTabIdForHandle(tab_id_, handle);
|
| + hr = FireMapTabIdToHandle();
|
| if (FAILED(hr)) {
|
| DCHECK(SUCCEEDED(hr)) << "An error occured when setting the tab_id: " <<
|
| com::LogHr(hr);
|
| tab_id_ = kInvalidChromeSessionId;
|
| return false;
|
| }
|
| - VLOG(2) << "TabId(" << tab_id_ << ") set for Handle(" << handle << ")";
|
| + VLOG(2) << "TabId(" << tab_id_ << ") set for Handle(" << tab_window_ << ")";
|
|
|
| // Call back all the events we deferred. In order, please.
|
| while (!deferred_events_call_.empty()) {
|
| @@ -713,6 +696,34 @@
|
| chrome_frame_host_.Receive());
|
| }
|
|
|
| +HRESULT BrowserHelperObject::SendIdMappingToBroker(const char* event_name,
|
| + int id) {
|
| + // Event arguments for FireEvent need to be stored in a list.
|
| + VLOG(1) << "SendIdMappingToBroker(" << event_name << ", " << id << ")";
|
| + DCHECK(id != kInvalidChromeSessionId);
|
| + DCHECK(tab_window_ != NULL);
|
| +
|
| + ListValue mapping_args;
|
| + mapping_args.Append(Value::CreateIntegerValue(id));
|
| + mapping_args.Append(Value::CreateIntegerValue(
|
| + reinterpret_cast<int>(tab_window_)));
|
| +
|
| + std::string event_args_str;
|
| + base::JSONWriter::Write(&mapping_args, false, &event_args_str);
|
| + // We go directly to Impl version since we know we have Ensured Id...
|
| + return SendEventToBrokerImpl(event_name, event_args_str);
|
| +}
|
| +
|
| +HRESULT BrowserHelperObject::FireMapTabIdToHandle() {
|
| + return SendIdMappingToBroker(ceee_event_names::kCeeeMapTabIdToHandle,
|
| + tab_id_);
|
| +}
|
| +
|
| +HRESULT BrowserHelperObject::FireMapToolbandIdToHandle(int toolband_id) {
|
| + return SendIdMappingToBroker(ceee_event_names::kCeeeMapToolbandIdToHandle,
|
| + toolband_id);
|
| +}
|
| +
|
| void BrowserHelperObject::FireOnCreatedEvent(BSTR url) {
|
| DCHECK(url != NULL);
|
| DCHECK(tab_window_ != NULL);
|
| @@ -1565,15 +1576,14 @@
|
| }
|
|
|
| STDMETHODIMP BrowserHelperObject::SetToolBandSessionId(long session_id) {
|
| - CeeeWindowHandle handle = reinterpret_cast<CeeeWindowHandle>(tab_window_);
|
| - HRESULT hr = SetTabToolBandIdForHandle(session_id, handle);
|
| + HRESULT hr = FireMapToolbandIdToHandle(session_id);
|
| if (FAILED(hr)) {
|
| DCHECK(SUCCEEDED(hr)) << "An error occured when setting the toolband " <<
|
| "tab ID: " << com::LogHr(hr);
|
| return hr;
|
| }
|
| - VLOG(2) << "ToolBandTabId(" << session_id << ") set for Handle(" << handle <<
|
| - ")";
|
| + VLOG(2) << "ToolBandTabId(" << session_id << ") set for Handle(" <<
|
| + tab_window_ << ")";
|
| return hr;
|
| }
|
|
|
|
|