Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: chrome/browser/debugger/devtools_window.cc

Issue 4694008: Make pink's TabContentsWrapper change compile on Windows.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/json/json_writer.h" 6 #include "base/json/json_writer.h"
7 #include "base/string_number_conversions.h" 7 #include "base/string_number_conversions.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/browser_list.h" 10 #include "chrome/browser/browser_list.h"
11 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/browser_window.h" 12 #include "chrome/browser/browser_window.h"
13 #include "chrome/browser/debugger/devtools_manager.h" 13 #include "chrome/browser/debugger/devtools_manager.h"
14 #include "chrome/browser/debugger/devtools_window.h" 14 #include "chrome/browser/debugger/devtools_window.h"
15 #include "chrome/browser/extensions/extensions_service.h" 15 #include "chrome/browser/extensions/extensions_service.h"
16 #include "chrome/browser/in_process_webkit/session_storage_namespace.h" 16 #include "chrome/browser/in_process_webkit/session_storage_namespace.h"
17 #include "chrome/browser/load_notification_details.h" 17 #include "chrome/browser/load_notification_details.h"
18 #include "chrome/browser/prefs/pref_service.h" 18 #include "chrome/browser/prefs/pref_service.h"
19 #include "chrome/browser/profile.h" 19 #include "chrome/browser/profile.h"
20 #include "chrome/browser/renderer_host/render_view_host.h" 20 #include "chrome/browser/renderer_host/render_view_host.h"
21 #include "chrome/browser/tab_contents/navigation_controller.h" 21 #include "chrome/browser/tab_contents/navigation_controller.h"
22 #include "chrome/browser/tab_contents/navigation_entry.h" 22 #include "chrome/browser/tab_contents/navigation_entry.h"
23 #include "chrome/browser/tab_contents/tab_contents.h" 23 #include "chrome/browser/tab_contents/tab_contents.h"
24 #include "chrome/browser/tab_contents/tab_contents_view.h" 24 #include "chrome/browser/tab_contents/tab_contents_view.h"
25 #include "chrome/browser/tab_contents_wrapper.h"
25 #include "chrome/browser/tabs/tab_strip_model.h" 26 #include "chrome/browser/tabs/tab_strip_model.h"
26 #include "chrome/browser/themes/browser_theme_provider.h" 27 #include "chrome/browser/themes/browser_theme_provider.h"
27 #include "chrome/browser/ui/browser.h" 28 #include "chrome/browser/ui/browser.h"
28 #include "chrome/common/bindings_policy.h" 29 #include "chrome/common/bindings_policy.h"
29 #include "chrome/common/chrome_switches.h" 30 #include "chrome/common/chrome_switches.h"
30 #include "chrome/common/pref_names.h" 31 #include "chrome/common/pref_names.h"
31 #include "chrome/common/render_messages.h" 32 #include "chrome/common/render_messages.h"
32 #include "chrome/common/url_constants.h" 33 #include "chrome/common/url_constants.h"
33 #include "grit/generated_resources.h" 34 #include "grit/generated_resources.h"
34 35
(...skipping 11 matching lines...) Expand all
46 DevToolsClientHost* client_host = DevToolsManager::GetInstance()-> 47 DevToolsClientHost* client_host = DevToolsManager::GetInstance()->
47 GetDevToolsClientHostFor(inspected_tab->render_view_host()); 48 GetDevToolsClientHostFor(inspected_tab->render_view_host());
48 if (!client_host) { 49 if (!client_host) {
49 return NULL; 50 return NULL;
50 } 51 }
51 52
52 DevToolsWindow* window = client_host->AsDevToolsWindow(); 53 DevToolsWindow* window = client_host->AsDevToolsWindow();
53 if (!window || !window->is_docked()) { 54 if (!window || !window->is_docked()) {
54 return NULL; 55 return NULL;
55 } 56 }
56 return window->tab_contents(); 57 return window->tab_contents()->tab_contents();
57 } 58 }
58 59
59 DevToolsWindow::DevToolsWindow(Profile* profile, 60 DevToolsWindow::DevToolsWindow(Profile* profile,
60 RenderViewHost* inspected_rvh, 61 RenderViewHost* inspected_rvh,
61 bool docked) 62 bool docked)
62 : profile_(profile), 63 : profile_(profile),
63 browser_(NULL), 64 browser_(NULL),
64 docked_(docked), 65 docked_(docked),
65 is_loaded_(false), 66 is_loaded_(false),
66 action_on_load_(DEVTOOLS_TOGGLE_ACTION_NONE) { 67 action_on_load_(DEVTOOLS_TOGGLE_ACTION_NONE) {
67 // Create TabContents with devtools. 68 // Create TabContents with devtools.
68 tab_contents_ = new TabContents(profile, NULL, MSG_ROUTING_NONE, NULL, NULL); 69 tab_contents_ =
69 tab_contents_->render_view_host()->AllowBindings(BindingsPolicy::DOM_UI); 70 Browser::TabContentsFactory(profile, NULL, MSG_ROUTING_NONE, NULL, NULL);
71 tab_contents_->tab_contents()->
72 render_view_host()->AllowBindings(BindingsPolicy::DOM_UI);
70 tab_contents_->controller().LoadURL( 73 tab_contents_->controller().LoadURL(
71 GetDevToolsUrl(), GURL(), PageTransition::START_PAGE); 74 GetDevToolsUrl(), GURL(), PageTransition::START_PAGE);
72 75
73 // Wipe out page icon so that the default application icon is used. 76 // Wipe out page icon so that the default application icon is used.
74 NavigationEntry* entry = tab_contents_->controller().GetActiveEntry(); 77 NavigationEntry* entry = tab_contents_->controller().GetActiveEntry();
75 entry->favicon().set_bitmap(SkBitmap()); 78 entry->favicon().set_bitmap(SkBitmap());
76 entry->favicon().set_is_valid(true); 79 entry->favicon().set_is_valid(true);
77 80
78 // Register on-load actions. 81 // Register on-load actions.
79 registrar_.Add(this, 82 registrar_.Add(this,
80 NotificationType::LOAD_STOP, 83 NotificationType::LOAD_STOP,
81 Source<NavigationController>(&tab_contents_->controller())); 84 Source<NavigationController>(&tab_contents_->controller()));
82 registrar_.Add(this, 85 registrar_.Add(this,
83 NotificationType::TAB_CLOSING, 86 NotificationType::TAB_CLOSING,
84 Source<NavigationController>(&tab_contents_->controller())); 87 Source<NavigationController>(&tab_contents_->controller()));
85 registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED, 88 registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED,
86 NotificationService::AllSources()); 89 NotificationService::AllSources());
87 inspected_tab_ = inspected_rvh->delegate()->GetAsTabContents(); 90 inspected_tab_ = inspected_rvh->delegate()->GetAsTabContents();
88 } 91 }
89 92
90 DevToolsWindow::~DevToolsWindow() { 93 DevToolsWindow::~DevToolsWindow() {
91 } 94 }
92 95
93 DevToolsWindow* DevToolsWindow::AsDevToolsWindow() { 96 DevToolsWindow* DevToolsWindow::AsDevToolsWindow() {
94 return this; 97 return this;
95 } 98 }
96 99
97 void DevToolsWindow::SendMessageToClient(const IPC::Message& message) { 100 void DevToolsWindow::SendMessageToClient(const IPC::Message& message) {
98 RenderViewHost* target_host = tab_contents_->render_view_host(); 101 RenderViewHost* target_host =
102 tab_contents_->tab_contents()->render_view_host();
99 IPC::Message* m = new IPC::Message(message); 103 IPC::Message* m = new IPC::Message(message);
100 m->set_routing_id(target_host->routing_id()); 104 m->set_routing_id(target_host->routing_id());
101 target_host->Send(m); 105 target_host->Send(m);
102 } 106 }
103 107
104 void DevToolsWindow::InspectedTabClosing() { 108 void DevToolsWindow::InspectedTabClosing() {
105 if (docked_) { 109 if (docked_) {
106 // Update dev tools to reflect removed dev tools window. 110 // Update dev tools to reflect removed dev tools window.
107 111
108 BrowserWindow* inspected_window = GetInspectedBrowserWindow(); 112 BrowserWindow* inspected_window = GetInspectedBrowserWindow();
(...skipping 14 matching lines...) Expand all
123 } 127 }
124 128
125 void DevToolsWindow::Show(DevToolsToggleAction action) { 129 void DevToolsWindow::Show(DevToolsToggleAction action) {
126 if (docked_) { 130 if (docked_) {
127 Browser* inspected_browser; 131 Browser* inspected_browser;
128 int inspected_tab_index; 132 int inspected_tab_index;
129 // Tell inspected browser to update splitter and switch to inspected panel. 133 // Tell inspected browser to update splitter and switch to inspected panel.
130 if (FindInspectedBrowserAndTabIndex(&inspected_browser, 134 if (FindInspectedBrowserAndTabIndex(&inspected_browser,
131 &inspected_tab_index)) { 135 &inspected_tab_index)) {
132 BrowserWindow* inspected_window = inspected_browser->window(); 136 BrowserWindow* inspected_window = inspected_browser->window();
133 tab_contents_->set_delegate(this); 137 tab_contents_->tab_contents()->set_delegate(this);
134 inspected_window->UpdateDevTools(); 138 inspected_window->UpdateDevTools();
135 SetAttachedWindow(); 139 SetAttachedWindow();
136 tab_contents_->view()->SetInitialFocus(); 140 tab_contents_->view()->SetInitialFocus();
137 inspected_window->Show(); 141 inspected_window->Show();
138 TabStripModel* tabstrip_model = inspected_browser->tabstrip_model(); 142 TabStripModel* tabstrip_model = inspected_browser->tabstrip_model();
139 tabstrip_model->SelectTabContentsAt(inspected_tab_index, true); 143 tabstrip_model->SelectTabContentsAt(inspected_tab_index, true);
140 ScheduleAction(action); 144 ScheduleAction(action);
141 return; 145 return;
142 } else { 146 } else {
143 // Sometimes we don't know where to dock. Stay undocked. 147 // Sometimes we don't know where to dock. Stay undocked.
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 L"WebInspector.setAttachedWindow(false);"); 267 L"WebInspector.setAttachedWindow(false);");
264 } 268 }
265 269
266 270
267 void DevToolsWindow::AddDevToolsExtensionsToClient() { 271 void DevToolsWindow::AddDevToolsExtensionsToClient() {
268 if (inspected_tab_) { 272 if (inspected_tab_) {
269 FundamentalValue tabId(inspected_tab_->controller().session_id().id()); 273 FundamentalValue tabId(inspected_tab_->controller().session_id().id());
270 CallClientFunction(L"WebInspector.setInspectedTabId", tabId); 274 CallClientFunction(L"WebInspector.setInspectedTabId", tabId);
271 } 275 }
272 ListValue results; 276 ListValue results;
273 const ExtensionsService* extension_service = tab_contents_->profile()-> 277 const ExtensionsService* extension_service =
274 GetOriginalProfile()->GetExtensionsService(); 278 tab_contents_->tab_contents()->profile()->
279 GetOriginalProfile()->GetExtensionsService();
275 const ExtensionList* extensions = extension_service->extensions(); 280 const ExtensionList* extensions = extension_service->extensions();
276 281
277 for (ExtensionList::const_iterator extension = extensions->begin(); 282 for (ExtensionList::const_iterator extension = extensions->begin();
278 extension != extensions->end(); ++extension) { 283 extension != extensions->end(); ++extension) {
279 if ((*extension)->devtools_url().is_empty()) 284 if ((*extension)->devtools_url().is_empty())
280 continue; 285 continue;
281 DictionaryValue* extension_info = new DictionaryValue(); 286 DictionaryValue* extension_info = new DictionaryValue();
282 extension_info->Set("startPage", 287 extension_info->Set("startPage",
283 new StringValue((*extension)->devtools_url().spec())); 288 new StringValue((*extension)->devtools_url().spec()));
284 results.Append(extension_info); 289 results.Append(extension_info);
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 return false; 403 return false;
399 } 404 }
400 405
401 void DevToolsWindow::HandleKeyboardEvent(const NativeWebKeyboardEvent& event) { 406 void DevToolsWindow::HandleKeyboardEvent(const NativeWebKeyboardEvent& event) {
402 if (docked_) { 407 if (docked_) {
403 BrowserWindow* inspected_window = GetInspectedBrowserWindow(); 408 BrowserWindow* inspected_window = GetInspectedBrowserWindow();
404 if (inspected_window) 409 if (inspected_window)
405 inspected_window->HandleKeyboardEvent(event); 410 inspected_window->HandleKeyboardEvent(event);
406 } 411 }
407 } 412 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698