summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvsevik@chromium.org <vsevik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 20:08:53 +0000
committervsevik@chromium.org <vsevik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 20:08:53 +0000
commit19c64145305eff1938e7a3273bb5187305734577 (patch)
treeb1bd5af57fc71740fe525589cab5bf12cbb89cc8
parentc74952cbf654a67c6a3b33719c82f81e72bffd30 (diff)
downloadchromium_src-19c64145305eff1938e7a3273bb5187305734577.zip
chromium_src-19c64145305eff1938e7a3273bb5187305734577.tar.gz
chromium_src-19c64145305eff1938e7a3273bb5187305734577.tar.bz2
Supported DevTools to DevTools navigation in OpenURLFromTab in DevToolsWindow.
Drive-by: Replaced WebUI scheme checks with DevTools scheme checks. BUG=180559 Review URL: https://chromiumcodereview.appspot.com/12533006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186488 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/devtools/devtools_file_helper.cc2
-rw-r--r--chrome/browser/devtools/devtools_window.cc17
-rw-r--r--chrome/browser/ui/browser.cc9
-rw-r--r--chrome/browser/ui/browser_navigator.cc12
-rw-r--r--chrome/browser/ui/browser_navigator.h5
5 files changed, 33 insertions, 12 deletions
diff --git a/chrome/browser/devtools/devtools_file_helper.cc b/chrome/browser/devtools/devtools_file_helper.cc
index 3d5d16d..b03c0b3 100644
--- a/chrome/browser/devtools/devtools_file_helper.cc
+++ b/chrome/browser/devtools/devtools_file_helper.cc
@@ -136,7 +136,7 @@ std::string RegisterFileSystem(WebContents* web_contents,
const base::FilePath& path,
std::string* registered_name) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- CHECK(content::HasWebUIScheme(web_contents->GetURL()));
+ CHECK(web_contents->GetURL().SchemeIs(chrome::kChromeDevToolsScheme));
std::string file_system_id = isolated_context()->RegisterFileSystemForPath(
fileapi::kFileSystemTypeNativeLocal, path, registered_name);
diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc
index 9c71df9..0123c05 100644
--- a/chrome/browser/devtools/devtools_window.cc
+++ b/chrome/browser/devtools/devtools_window.cc
@@ -498,6 +498,17 @@ void DevToolsWindow::AddDevToolsExtensionsToClient() {
WebContents* DevToolsWindow::OpenURLFromTab(WebContents* source,
const OpenURLParams& params) {
+ if (params.url.SchemeIs(chrome::kChromeDevToolsScheme)) {
+ chrome::NavigateParams nav_params(profile_, params.url, params.transition);
+ FillNavigateParamsFromOpenURLParams(&nav_params, params);
+ nav_params.source_contents = source;
+ nav_params.tabstrip_add_types = TabStripModel::ADD_NONE;
+ nav_params.window_action = chrome::NavigateParams::SHOW_WINDOW;
+ nav_params.user_gesture = true;
+ chrome::Navigate(&nav_params);
+ return nav_params.target_contents;
+ }
+
if (inspected_web_contents_)
return inspected_web_contents_->OpenURL(params);
return NULL;
@@ -866,19 +877,19 @@ DictionaryValue* CreateFileSystemValue(
} // namespace
void DevToolsWindow::RequestFileSystems() {
- CHECK(content::HasWebUIScheme(web_contents_->GetURL()));
+ CHECK(web_contents_->GetURL().SchemeIs(chrome::kChromeDevToolsScheme));
file_helper_->RequestFileSystems(
Bind(&DevToolsWindow::FileSystemsLoaded, weak_factory_.GetWeakPtr()));
}
void DevToolsWindow::AddFileSystem() {
- CHECK(content::HasWebUIScheme(web_contents_->GetURL()));
+ CHECK(web_contents_->GetURL().SchemeIs(chrome::kChromeDevToolsScheme));
file_helper_->AddFileSystem(
Bind(&DevToolsWindow::FileSystemAdded, weak_factory_.GetWeakPtr()));
}
void DevToolsWindow::RemoveFileSystem(const std::string& file_system_path) {
- CHECK(content::HasWebUIScheme(web_contents_->GetURL()));
+ CHECK(web_contents_->GetURL().SchemeIs(chrome::kChromeDevToolsScheme));
file_helper_->RemoveFileSystem(file_system_path);
StringValue file_system_path_value(file_system_path);
CallClientFunction("InspectorFrontendAPI.fileSystemRemoved",
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 3ecb910..7c57e93 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -1264,18 +1264,11 @@ void Browser::ShowDownload(content::DownloadItem* download) {
WebContents* Browser::OpenURLFromTab(WebContents* source,
const OpenURLParams& params) {
chrome::NavigateParams nav_params(this, params.url, params.transition);
+ FillNavigateParamsFromOpenURLParams(&nav_params, params);
nav_params.source_contents = source;
- nav_params.referrer = params.referrer;
- nav_params.extra_headers = params.extra_headers;
- nav_params.disposition = params.disposition;
nav_params.tabstrip_add_types = TabStripModel::ADD_NONE;
nav_params.window_action = chrome::NavigateParams::SHOW_WINDOW;
nav_params.user_gesture = true;
- nav_params.override_encoding = params.override_encoding;
- nav_params.is_renderer_initiated = params.is_renderer_initiated;
- nav_params.transferred_global_request_id =
- params.transferred_global_request_id;
- nav_params.is_cross_site_redirect = params.is_cross_site_redirect;
chrome::Navigate(&nav_params);
return nav_params.target_contents;
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc
index 3e01d3c..05eb9d8 100644
--- a/chrome/browser/ui/browser_navigator.cc
+++ b/chrome/browser/ui/browser_navigator.cc
@@ -437,6 +437,18 @@ NavigateParams::NavigateParams(Profile* a_profile,
NavigateParams::~NavigateParams() {}
+void FillNavigateParamsFromOpenURLParams(chrome::NavigateParams* nav_params,
+ const content::OpenURLParams& params) {
+ nav_params->referrer = params.referrer;
+ nav_params->extra_headers = params.extra_headers;
+ nav_params->disposition = params.disposition;
+ nav_params->override_encoding = params.override_encoding;
+ nav_params->is_renderer_initiated = params.is_renderer_initiated;
+ nav_params->transferred_global_request_id =
+ params.transferred_global_request_id;
+ nav_params->is_cross_site_redirect = params.is_cross_site_redirect;
+}
+
void Navigate(NavigateParams* params) {
Browser* source_browser = params->browser;
if (source_browser)
diff --git a/chrome/browser/ui/browser_navigator.h b/chrome/browser/ui/browser_navigator.h
index 7100361..f6e3cc0 100644
--- a/chrome/browser/ui/browser_navigator.h
+++ b/chrome/browser/ui/browser_navigator.h
@@ -10,6 +10,7 @@
#include "chrome/browser/ui/host_desktop.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/global_request_id.h"
+#include "content/public/browser/page_navigator.h"
#include "content/public/common/page_transition_types.h"
#include "content/public/common/referrer.h"
#include "googleurl/src/gurl.h"
@@ -215,6 +216,10 @@ struct NavigateParams {
NavigateParams();
};
+// Copies fields from |params| struct to |nav_params| struct.
+void FillNavigateParamsFromOpenURLParams(chrome::NavigateParams* nav_params,
+ const content::OpenURLParams& params);
+
// Navigates according to the configuration specified in |params|.
void Navigate(NavigateParams* params);