extension_devtools_events.cc revision c407dc5cd9bdc5668497f21b26b09d988ab439de
1// Copyright (c) 2009 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/extensions/extension_devtools_events.h" 6 7#include <vector> 8 9#include "base/string_util.h" 10 11// These string constants and the formats used in this file must stay 12// in sync with chrome/renderer/resources/extension_process_bindings.js 13static const char kDevToolsEventPrefix[] = "devtools."; 14static const char kOnPageEventName[] = "onPageEvent"; 15static const char kOnTabCloseEventName[] = "onTabClose"; 16 17// static 18bool ExtensionDevToolsEvents::IsDevToolsEventName( 19 const std::string& event_name, int* tab_id) { 20 // We only care about events of the form "devtools.34.*", where 34 is 21 // a tab id. 22 if (IsStringASCII(event_name) && 23 StartsWithASCII(event_name, 24 kDevToolsEventPrefix, 25 true /* case_sensitive */)) { 26 // At this point we want something like "4.onPageEvent" 27 std::vector<std::string> parts; 28 SplitString(event_name.substr(strlen(kDevToolsEventPrefix)), '.', &parts); 29 if (parts.size() == 2 && StringToInt(parts[0], tab_id)) { 30 return true; 31 } 32 } 33 return false; 34} 35 36// static 37std::string ExtensionDevToolsEvents::OnPageEventNameForTab(int tab_id) { 38 return StringPrintf("%s%d.%s", 39 kDevToolsEventPrefix, 40 tab_id, 41 kOnPageEventName); 42} 43 44// static 45std::string ExtensionDevToolsEvents::OnTabCloseEventNameForTab(int tab_id) { 46 return StringPrintf("%s%d.%s", 47 kDevToolsEventPrefix, 48 tab_id, 49 kOnTabCloseEventName); 50} 51 52